uni-app 微信授权登录没有回调
uni-app 微信授权登录没有回调
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | Windows 11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.96
手机系统:iOS
手机系统版本号:iOS 17
手机厂商:苹果
手机机型:iPhone 13
页面类型:vue
vue版本:vue2
打包方式:云端
示例代码:
···uni.login({
provider: 'weixin', // 微信登录
onlyAuthorize: true, // 微信登录仅请求授权认证
success: loginRes => {
console.log("App微信获取用户信息成功", loginRes);
// 获取用户信息
uni.getUserInfo({
provider: 'weixin',
success: infoRes => {
console.log(infoRes);
// this.wechatUserInfo = infoRes.userInfo
this.bindWechat(infoRes.userInfo)
},
fail: err => {
uni.hideLoading();
uni.showToast({
icon: 'none',
title: err
})
}
})
},
fail: res => {
console.log("App微信获取用户信息失败", res);
uni.showToast({
icon: 'none',
// title: res.errMsg
title: '微信绑定失败'
})
}
···
`
打自定义基座了么,用hello uniapp试下
是自定义基座,android是没有问题的,ios不执行,也没有回调
回复 DCloud_iOS_WZT: uni.getProvider调用了的,支持微信登录的
回复 DCloud_iOS_WZT: 示例应该怎么提供呀?
回复 青鹧: 上传附件
回复 DCloud_iOS_WZT:代码用的就是官网的示例代码,android没有问题,ios是需要特殊配置吗
回复 DCloud_iOS_WZT: 附件上传了,麻烦您看一眼
回复 DCloud_iOS_WZT: 顺便想问您一下,这个微信授权过后,就不会在跳转微信弹出授权弹框了,如果想每次都跳转的话,应该怎么写呀
代码
通用链接没配?
回复 DCloud_iOS_WZT: 没有,那个需要配吗
回复 青鹧: 必须配
回复 DCloud_iOS_WZT: 好的谢谢您
回复 DCloud_iOS_WZT: 顺便想问您一下,这个微信授权过后,就不会在跳转微信弹出授权弹框了,如果想每次都想显示授权弹框的话,应该怎么写呀
回复 青鹧: 只授权一次,这个是微信SDK的策略 你可以去微信SDK的官方论坛查一查
回复 DCloud_iOS_WZT: 好的谢谢
在使用 UniApp 进行微信授权登录时,如果没有回调,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:
1. 检查微信开放平台配置
- 确保在微信开放平台上正确配置了应用的
AppID
和AppSecret
。 - 检查 授权回调域名 是否配置正确。微信授权登录需要一个合法的回调域名(如
https://yourdomain.com
),且必须是 HTTPS 协议。 - 如果是本地开发环境,可以使用微信开发者工具的 开发环境校验 功能,临时忽略域名校验。
2. 检查 UniApp 代码
- 确保在
manifest.json
中正确配置了微信小程序的AppID
。 - 确保调用微信授权登录的代码逻辑正确,例如:
uni.login({ provider: 'weixin', success: function (loginRes) { console.log('登录成功', loginRes); // 获取用户信息 uni.getUserInfo({ provider: 'weixin', success: function (infoRes) { console.log('用户信息', infoRes); }, fail: function (err) { console.error('获取用户信息失败', err); } }); }, fail: function (err) { console.error('登录失败', err); } });
- 确保
uni.login
和uni.getUserInfo
的调用顺序正确。
3. 检查微信开发者工具配置
- 如果你是在微信开发者工具中测试,确保在 项目设置 中勾选了
启用服务端口
和启用调试
。 - 如果是真机调试,确保手机和开发环境在同一网络下,并且使用的是微信正式版(非测试版)。
4. 检查网络环境
- 确保网络环境正常,微信授权登录需要访问微信服务器,如果网络不稳定可能导致回调失败。
- 如果是本地开发环境,可以使用抓包工具(如 Charles 或 Fiddler)检查是否有请求发出以及响应内容。
5. 检查微信授权逻辑
- 微信授权登录需要用户手动点击按钮触发,不能自动调用。确保在用户点击按钮后再调用
uni.login
。 - 示例:
<button @click="handleWechatLogin">微信登录</button>
methods: { handleWechatLogin() { uni.login({ provider: 'weixin', success: function (loginRes) { console.log('登录成功', loginRes); }, fail: function (err) { console.error('登录失败', err); } }); } }