app.js
wx.getSetting({ success: res => { if (res.authSetting['scope.userInfo']) { console.log("app.js页面,已授权") wx.switchTab({ url: '../../pages/home/index', success: (result) => { }, fail: () => {}, complete: () => {} }); }else{ console.log("app.js页面,没有授权") wx.switchTab({ url: '../../pages/index/index', success: (result) => { }, fail: () => {}, complete: () => {} }); } } }) |
index.js(授权登录页面)
onLoad: function (options) { console.log("进入授权页面")} |
home.js(tab主页面)
onLoad: function (options) { console.log("进入home页面")} |
app.json
"pages": [ "pages/index/index", "pages/home/index", ] |
未授权状态时:
或者
授权后:
问题:因为我是将授权登录页单独写成了一个页面,所以app.json也注册了这个页面,而且写在了第一的位置,小程序会在进入home页面前,先进入 index页面。
但为什么不是先将app.js代码执行完再去由 wx.switchTab 判断进入哪一个页面。
已知解决方案:将index页面和home页面放到同一页,然后由hide判断index页面是否显示

麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)