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
问题复现,这边排查下
更多关于uni-app 小程序 Vue3 onLaunch周期无法调用 uni.login的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题已修复,请升级到HBuilder X 3.2.12
在 Vue3 的 onLaunch 周期中调用 uni.login 确实会遇到问题,因为此时小程序的登录 API 尚未完全初始化。错误信息显示 getSystemInfoSync 为 undefined,这证实了运行时环境还未就绪。
解决方案:
将 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);
}
});
}
}

