uni-app ios平台微信第三方静默登录异常 弹起授权询问
uni-app ios平台微信第三方静默登录异常 弹起授权询问
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC操作系统版本 | 10 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.4.3 |
手机系统 | iOS |
手机系统版本 | iOS 14 |
手机厂商 | 苹果 |
手机机型 | iphone xs |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- 调用uni.login设置静默授权,在ios运行app还会弹起授权
预期结果:
- 不弹起授权询问,实现静默登录
实际结果:
- 弹出了授权询问
bug描述:
- ios app 微信第三方静默登录还会弹起授权询问
3 回复
scopes ,授权类型,仅支持支付宝小程序,详见文档平台差异说明
那在ios app下面的话调用uni.login每次都会弹出授权询问吗?
在 uni-app
开发中,使用微信第三方登录时,如果在 iOS 平台上遇到静默登录异常,并且弹起了授权询问,可能是由于以下几个原因导致的。以下是一些可能的解决方案和排查步骤:
1. 检查微信 SDK 的初始化配置
- 确保在
App.vue
或相关入口文件中正确初始化了微信 SDK,并且配置了正确的AppID
和Universal Link
。 - 示例代码:
uni.initWxSdk({ appId: 'your-app-id', universalLink: 'your-universal-link' });
2. 检查 Universal Link 配置
- iOS 平台需要使用
Universal Link
来唤醒应用,确保在微信开放平台和苹果开发者后台正确配置了Universal Link
。 - 在
uni-app
的manifest.json
中,确保universalLinks
配置正确:"app-plus": { "distribute": { "ios": { "universalLinks": [ "https://your-domain.com/universal-link/" ] } } }
3. 检查静默登录的逻辑
- 静默登录通常是通过
wx.login
接口获取code
,然后通过code
换取openid
和session_key
。 - 确保在调用
wx.login
时,没有触发用户授权弹窗。如果弹出了授权询问,可能是由于某些条件不满足,导致微信 SDK 认为需要用户授权。 - 示例代码:
uni.login({ provider: 'weixin', success: function (loginRes) { console.log('loginRes:', loginRes); // 通过 code 换取 openid 和 session_key }, fail: function (err) { console.error('login failed:', err); } });
4. 检查微信开放平台配置
- 确保在微信开放平台中,应用的
Bundle ID
和Universal Link
配置正确。 - 确保应用的
iOS 平台
配置正确,并且已经通过了微信的审核。
5. 检查 iOS 平台的权限配置
- 在
uni-app
的manifest.json
中,确保iOS
平台的权限配置正确,特别是NSAppleMusicUsageDescription
和NSMicrophoneUsageDescription
等权限描述。 - 示例配置:
"app-plus": { "distribute": { "ios": { "permissions": { "NSAppleMusicUsageDescription": "需要访问音乐库", "NSMicrophoneUsageDescription": "需要访问麦克风" } } } }