uni-app iOS安装包微信授权登录无法使用问题
uni-app iOS安装包微信授权登录无法使用问题
示例代码:
uni.login({
provider: 'weixin',
success: function(res) {
console.log(res.authResult);
console.log('登录返回信息:' + JSON.stringify(res));
// 获取用户信息
}
});
操作步骤:
云端打包后,使用微信授权登录
预期结果:
uni.login正常返回
实际结果:
uni.login没有返回。
bug描述:
昨晚打包完成后微信授权登录没有问题。今早8 点过代码小修改后(和登录没有任何关系)打包后,微信授权后没有返回信息。页面有授权提示,但是uni.login没有返回。感觉是打包。正式版和alpha版本都测试了,都是一样没有返回。问题有些严重。还请尽快排查。
| 开发环境 | 版本号 | 项目创建方式 |
|--------------|--------|--------------|
| Mac | 15.1 | HBuilderX |
| HBuilderX | 4.29 | |
| 手机系统 | 版本号 | |
| iOS | iOS 16 | |
| 手机厂商 | | |
| 苹果 | | |
| 手机机型 | | |
| iPhone X | | |
| 页面类型 | | |
| vue | vue2 | |
| 打包方式 | | |
| 云端 | | |
更多关于uni-app iOS安装包微信授权登录无法使用问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
TypeError: undefined is not an object (evaluating ‘launch_options.path’) __ERROR
微信授权后,有这样一个提示,但是我搜索代码里并没有这个。应该是uniapp内部的错误提示。
更多关于uni-app iOS安装包微信授权登录无法使用问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
查询文档,说是要加一个参数,加了个一个参数后有返回,但是调用uni.getUserInfo(),也没有返回。
uni.login({
provider: ‘weixin’,
onlyAuthorize: true,
success: function (loginRes) {
console.log(“微信登结果”,loginRes);
// 获取用户信息
uni.getUserInfo({
provider: ‘weixin’,
success: function (infoRes) {
console.log(‘用户昵称为:’ , infoRes);
}
});
}
});
我恢复了两个月前的测试ipa基座,不用调用onlyAuthorized参数,就可以正常获得用户信息。用了今早打的基座,就是没有反应了。在调用uni.login必须加上onlyAuthorize: true才有返回。但是调用uni.getUserInfo就没反应了。昨晚是云打包升级出现问题了吗?
从文档上看,如果调用uni,login的时候如果使用了参数onlyAuthorized,后面就必须通过业务服务器和微信开放平台去获取。如果不使用参数onlyAuthorized,在manifest里配置oauth的话,可以直接通过uni.login后直接uni.getUserInfo。但是目前看起来不使用参数onlyAuthorized的方式现在行不通了?还是这个功能已经关闭了?
针对uni-app在iOS安装包中微信授权登录无法使用的问题,这通常与微信SDK的配置、权限设置以及代码实现相关。以下是一个基本的代码案例和配置指南,帮助你检查和解决可能的问题。
1. 确保微信SDK配置正确
首先,确保在uni-app的manifest.json
文件中正确配置了微信开放平台的AppID。
"mp-weixin": {
"appid": "你的微信小程序AppID"
},
"app-plus": {
"distribute": {
"weixin": {
"appid": "你的微信开放平台AppID"
}
}
}
注意:这里的appid
应该分别对应你的微信小程序AppID和微信开放平台AppID,它们在授权流程中扮演不同角色。
2. 检查iOS项目配置
在Xcode中,打开你的uni-app生成的iOS项目,确保Info.plist
文件中包含了微信SDK所需的权限声明,如NSAppTransportSecurity
和LSApplicationQueriesSchemes
。
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>wechatauth</string>
</array>
3. 实现微信授权登录代码
在uni-app中,你可以使用uni.login
方法进行微信授权登录。以下是一个简单的示例:
uni.login({
provider: 'weixin',
success: function (loginRes) {
// 获取code
const code = loginRes.code;
// 使用code向你的服务器请求session_key和openid
uni.request({
url: 'https://你的服务器地址/wx_login',
method: 'POST',
data: {
code: code
},
success: function (response) {
// 处理服务器返回的session_key和openid
const { sessionKey, openId } = response.data;
// 保存sessionKey和openId到本地或进行后续操作
}
});
},
fail: function (error) {
console.error('微信登录失败', error);
}
});
4. 服务器端处理
服务器端需要使用微信提供的API,通过code换取session_key和openid。这部分代码通常涉及HTTP请求,具体实现依赖于你使用的编程语言和框架。
5. 调试和测试
在真实设备上测试你的应用,确保微信授权流程能够正常进行。如果遇到问题,检查控制台输出和网络请求,以便定位问题。
确保所有配置和代码都正确无误后,微信授权登录功能应该能够在uni-app的iOS安装包中正常工作。如果问题依旧存在,建议检查微信开放平台的开发者文档,或联系微信开放平台支持获取更多帮助。