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

5 回复

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所需的权限声明,如NSAppTransportSecurityLSApplicationQueriesSchemes

<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安装包中正常工作。如果问题依旧存在,建议检查微信开放平台的开发者文档,或联系微信开放平台支持获取更多帮助。

回到顶部