在 UniApp 中,微信登录在打包成 App 后出现不回调的问题,通常是由于配置错误或平台差异导致的。以下是常见原因及解决方案:
1. 检查 App 模块配置
- 在 HBuilderX 中,确保已正确配置微信登录模块:
- 打开
manifest.json → App 模块配置 → 勾选 微信登录。
- 填写微信开放平台的 AppID(注意是开放平台,而非公众号的 AppID)。
2. 配置原生 App SDK
- 在
manifest.json 的 App SDK 配置 中,填写微信开放平台申请的 AppID 和 Universal Links(iOS)。
- Universal Links 必须正确配置,且与微信开放平台填写的一致。
3. 代码调用示例
确保登录代码正确,使用 uni.login 的 provider: 'weixin':
uni.login({
provider: 'weixin',
success: (res) => {
console.log('微信登录成功', res);
// 处理登录结果,如发送 res.code 到后端换取 openid
},
fail: (err) => {
console.error('微信登录失败', err);
}
});
4. 检查打包设置
- Android:确认签名证书与微信开放平台填写的一致。可通过获取签名工具检查。
- iOS:
- 确保 Bundle ID 与微信开放平台配置完全一致。
- 配置正确的 Universal Links,并在微信开放平台验证。
5. 真机调试
- 使用自定义基座进行真机调试,避免使用标准基座。
- 在 HBuilderX 中制作自定义基座,并确保模块配置已生效。
6. 网络与权限
- 确保设备网络正常,且 App 有网络访问权限。
- 对于 iOS,检查是否配置了
NSAppTransportSecurity 允许 HTTP 请求(如果需要)。
7. 微信开放平台配置
- 确认应用已通过审核(某些接口需要)。
- 检查平台填写信息(如包名、签名)是否与 App 完全一致。
按照以上步骤检查和调整,通常能解决微信登录不回调的问题。如果问题依旧,查看 HBuilderX 控制台或手机日志,获取具体错误信息进一步排查。