uni-app HBuilderX3.4.7 项目运行到iOS app基座,uni.getSystemInfo能获取手机系统信息,但uni.getProvider获取不到‘apple’,无法测试苹果登录
uni-app HBuilderX3.4.7 项目运行到iOS app基座,uni.getSystemInfo能获取手机系统信息,但uni.getProvider获取不到‘apple’,无法测试苹果登录
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
PC开发环境操作系统 | Windows | |
PC开发环境操作系统版本号 | Windows 10 21H2 | |
HBuilderX版本号 | 3.4.7 |
示例代码:
uni.getSystemInfo({
success: (res) => {
this.system = res.system // iOS 15.4.1
this.platform = res.platform // ios
}
})
uni.getProvider({
//获取第三方登录类型
service: 'oauth',
success: function(res) {
console.log('res.provider', res.provider) // ["qq", "google", "univerify", "weixin", "facebook", "sinaweibo"]
},
fail: err => {
uni.showToast({
title: '登录失败',
icon: 'none'
})
}
})
操作步骤:
新建uniapp项目,在onLoad钩子函数中书写上述示例代码。准备一台iOS13+的苹果手机,将手机连接电脑,将项目运行到iOS app基座,即可复现。
预期结果:
res.provider
的数组中应该有'apple'
实际结果:
res.provider
的数组中应该没有'apple'
bug描述:
可以获取到手机系统信息,无法获取provider里面的 'apple'
更多关于uni-app HBuilderX3.4.7 项目运行到iOS app基座,uni.getSystemInfo能获取手机系统信息,但uni.getProvider获取不到‘apple’,无法测试苹果登录的实战教程也可以访问 https://www.itying.com/category-93-b0.html
苹果登录 勾选没有
更多关于uni-app HBuilderX3.4.7 项目运行到iOS app基座,uni.getSystemInfo能获取手机系统信息,但uni.getProvider获取不到‘apple’,无法测试苹果登录的实战教程也可以访问 https://www.itying.com/category-93-b0.html
您好,manifest.json里面的‘苹果登录’有勾选。打包安装到手机可以调起苹果登录,运行到iOS app基座无法调起苹果登录。
回复 h***@sina.com: 楼主,这个问题后面解决了吗?
这个偶现,最后解决了么
不是偶现哦,真机模拟的时候,确实是勾选了‘苹果登录‘也获取不到apple!
有解决吗?
在 uni-app
项目中,使用 uni.getProvider
获取服务提供商时,如果无法获取到 apple
,可能是由于以下原因导致的:
1. iOS 基座配置问题
- 确保你使用的是
HBuilderX
的 自定义基座,而不是标准基座。标准基座可能没有包含苹果登录的配置。 - 在
HBuilderX
中,选择 运行 -> 运行到手机或模拟器 -> 运行到 iOS App 基座,并确保使用的是自定义基座。
2. manifest.json 配置
- 在
manifest.json
文件中,确保已经正确配置了苹果登录的相关信息。 - 打开
manifest.json
,找到App SDK 配置
->iOS
,确保Sign In with Apple
已经启用。
{
"app-plus": {
"ios": {
"capabilities": {
"Sign In with Apple": true
}
}
}
}
3. iOS 开发者账号配置
- 确保你的 iOS 开发者账号已经启用了
Sign In with Apple
功能。 - 在 Apple Developer 网站中,进入你的 App ID 配置页面,确保
Sign In with Apple
已经启用。
4. 代码检查
- 确保你在代码中正确调用了
uni.getProvider
方法,并且处理了返回结果。
uni.getProvider({
service: 'oauth',
success: function (res) {
console.log(res.provider); // 检查是否包含 'apple'
},
fail: function (err) {
console.error(err);
}
});