|
|
1,登录放到onLaunch中,初始化完成时触发(全局只触发一次);2,因为用code换openid需要发网络请求,所以得到openid的时候,可能是在已经执行onLoad之后了;
uniapp解决方案
1、main.js添加如下代码
- Vue.prototype.$onLaunched = new Promise(resolve => {
- Vue.prototype.$isResolve = resolve
- })
复制代码
2、应用启动时,设置需要等待的逻辑
在 App.vue 的 onLaunch 中增加代码 this.$isResolve()
这个方法必须在你的业务如ajax执行完毕后再执行
- onLaunch: function() {
- console.log('App Launch');
-
- console.log('倒计时10秒');
- setTimeout(() => {
- console.log('倒计时结束');
- this.$isResolve()
- },5000);
- },
复制代码
3、在页面 onLoad 中增加等待代码 await this.$onLaunched
注意onload要添加async,否则编译不过去
- async onLoad(option) {
- //等待倒计时
- await this.$onLaunched;
- console.log("等待倒计时结束后打印");
-
- // 后续业务逻辑
- },
复制代码
|
|