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描述:

  1. uniapp升级到最新的4.84版本,
  2. 配置好微信的APPID
  3. 使用uni.login 传入weixin作为provider
  4. 鸿蒙6.0手机运行,可以正常拉起到微信APP,在微信APP确认授权后跳回本应用
  5. 在传入的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存在差异,微信授权跳转返回后,页面上下文可能未正确恢复,导致回调丢失。

临时解决方案:

  1. 降级到uni-app 4.83版本 - 目前4.84版本在鸿蒙NEXT上存在兼容性问题
  2. 使用全局事件监听替代回调函数:
// 在页面onLoad中监听事件
onLoad() {
  uni.$on('weixinLoginSuccess', this.handleLoginSuccess)
  uni.$on('weixinLoginFail', this.handleLoginFail)
}

// 登录调用
uni.login({
  provider: 'weixin',
  onlyAuthorize: true
})

// 在App.vue中通过onShow捕获返回
onShow() {
  // 检查登录状态或获取缓存数据
}
  1. 检查manifest.json配置,确保微信SDK配置正确:
{
  "app-plus": {
    "distribute": {
      "oauth": {
        "weixin": {
          "appid": "your-weixin-appid",
          "appsecret": "your-weixin-appsecret"
        }
      }
    }
  }
}
回到顶部