app.js 获取是否授权 (这里只讨论已经获取授权) 这时候的app.global.isAuthorized 是true
------------------------------- 这是出现问题页面的相关代码---------------------------------
------------------------------------------------------------------------------------------------
这编辑器上截图
但是到了真机(隐藏了) (只在打一次打开小程序时会出现,切换到其他Tab再切回来就好了)
然后我看了一下真机上的wxml
麻烦提供一下出现问题的机型和微信版本,并且给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题
好的 下午我去写个代码片段
wechatide://minicode/inOi5Gmp7G5i 代码片段链接 机型 iphone6s 其他机型我也没试过
另外 需要一个已经授权过的appid 导入
hidden?用wx-if
一样 我之前用的wx:if 后来改的hidden 都一样 在真机上第一次打开 获取到的isAuthorized 就是false 不是app.js 里 的true
第一不要用hidden;第二我现在明白你的问题了,wx.getSetting和wx.getUserInfo都是网络请求,所有你在page的onLoad中直接setData就会出现这个问题,要在回调中用getCurrentPages()这个函数获取当前页面,然后再去setData
解决了 我把isAuthorized 放到storage中 在app.js 中wx.setStorageSync 再在页面中getStorageSync
其实就是wx.getSetting 的sucess 中 进行了异步操作, 模拟器的时候这个异步操作在页面还未加载的时候就完成了,到了真机上这个异步操作再页面加载完成之后
本身就是异步的啊。。你这种做法没区别啊,你还是要用getCurrentPages的