uni-app 小程序 Vue3 onLaunch周期无法调用 uni.login

uni-app 小程序 Vue3 onLaunch周期无法调用 uni.login

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

产品分类:uniapp/小程序/微信

操作步骤:

export default {
onLaunch () {
uni.login()
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}

预期结果:

返回code

实际结果:

报错

bug描述:

Vue3,onLaunch周期,无法调用 uni.login。

小程序端报错,

VM1739 WAService.js:2 TypeError: Cannot read property ‘getSystemInfoSync’ of undefined at initLocale (vendor.js? [sm]:7088) at parseApp (vendor.js? [sm]:7069) at createApp (vendor.js? [sm]:7084) at Object.mount (vendor.js? [sm]:6493) at Object.<anonymous> (main.js? [sm]:42) at Object.<anonymous> (main.js? [sm]:43) at webpack_require (runtime.js? [sm]:92) at checkDeferredModules (runtime.js? [sm]:48) at Array.webpackJsonpCallback [as push] (runtime.js? [sm]:35) at main.js? [sm]:1(env: Windows,mp,1.05.2107090; lib: 2.20.0)


## 相关链接 :

- <https://ask.dcloud.net.cn/question/132265>

更多关于uni-app 小程序 Vue3 onLaunch周期无法调用 uni.login的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

问题复现,这边排查下

更多关于uni-app 小程序 Vue3 onLaunch周期无法调用 uni.login的实战教程也可以访问 https://www.itying.com/category-93-b0.html


问题已修复,请升级到HBuilder X 3.2.12

在 Vue3 的 onLaunch 周期中调用 uni.login 确实会遇到问题,因为此时小程序的登录 API 尚未完全初始化。错误信息显示 getSystemInfoSyncundefined,这证实了运行时环境还未就绪。

解决方案:

uni.login 调用移至 onShow 周期,或使用 setTimeout 延迟执行:

export default {
  onLaunch() {
    // 延迟执行,确保环境就绪
    setTimeout(() => {
      uni.login({
        success: (res) => {
          console.log('login success:', res.code);
        },
        fail: (err) => {
          console.error('login fail:', err);
        }
      });
    }, 100);
  },
  onShow() {
    // 或直接在此调用
    uni.login({
      success: (res) => {
        console.log('login success:', res.code);
      }
    });
  }
}
回到顶部