uni-app 4.84版本在鸿蒙APP中调用uni.login进行微信登录微信授权后无法正常调用传入的success fail 之类的回调函数
uni-app 4.84版本在鸿蒙APP中调用uni.login进行微信登录微信授权后无法正常调用传入的success fail 之类的回调函数
| 信息类别 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win11 |
| 手机系统 | HarmonyOS NEXT |
| 手机系统版本号 | HarmonyOS 6.0.0 |
| 手机厂商 | 华为 |
| 手机机型 | MateX5 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 离线 |
| 项目创建方式 | CLI |
| CLI版本号 | 4.84 |
示例代码:
uni.login({
provider: 'weixin',
onlyAuthorize: true,
success: () => {
// 没有执行到这里
console.log('>>>weixin login success <<<');
},
fail: () => {
// 没有执行到这里
console.log('>>>weixin login fail <<<');
},
complete: (res2) => {
// 没有执行到这里
console.log('>>>weixin login complete <<<');
},
});
操作步骤:
如上
预期结果:
正常执行传入的success fail complete 函数
实际结果:
未执行
bug描述:
- uniapp升级到最新的4.84版本,
- 配置好微信的APPID
- 使用uni.login 传入weixin作为provider
- 鸿蒙6.0手机运行,可以正常拉起到微信APP,在微信APP确认授权后跳回本应用
- 在传入的success fail complete都没有触发
更多关于uni-app 4.84版本在鸿蒙APP中调用uni.login进行微信登录微信授权后无法正常调用传入的success fail 之类的回调函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
我这里测试没问题,请确认微信是最新版。正确的配置了微信的 appid
更多关于uni-app 4.84版本在鸿蒙APP中调用uni.login进行微信登录微信授权后无法正常调用传入的success fail 之类的回调函数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的鸿蒙NEXT系统兼容性问题。在HarmonyOS NEXT中,微信登录授权后回调机制存在异常,导致uni.login的回调函数无法正常触发。
问题原因: 鸿蒙NEXT系统的应用生命周期管理与Android存在差异,微信授权跳转返回后,页面上下文可能未正确恢复,导致回调丢失。
临时解决方案:
- 降级到uni-app 4.83版本 - 目前4.84版本在鸿蒙NEXT上存在兼容性问题
- 使用全局事件监听替代回调函数:
// 在页面onLoad中监听事件
onLoad() {
uni.$on('weixinLoginSuccess', this.handleLoginSuccess)
uni.$on('weixinLoginFail', this.handleLoginFail)
}
// 登录调用
uni.login({
provider: 'weixin',
onlyAuthorize: true
})
// 在App.vue中通过onShow捕获返回
onShow() {
// 检查登录状态或获取缓存数据
}
- 检查manifest.json配置,确保微信SDK配置正确:
{
"app-plus": {
"distribute": {
"oauth": {
"weixin": {
"appid": "your-weixin-appid",
"appsecret": "your-weixin-appsecret"
}
}
}
}
}

