又遇到了比较恶心的事情。昨天是卡在了wx.getconfig无法初始化,通过上篇文章知道了做小程序必须要建立公众号。今天调试,拿ios手机打开小程序,进到主页,点击按钮跳到我写的vue项目,项目中用到定位wx.getLocation方法,ios真机完美显位置。随后拿android真机重复操作,却一直报错。在微信开发平台上咨询了也没答案。官方文档和csdn也没什么好的建议。最后看到一个帖子!
ios端是直接在vue项目的初始页面初始化一次即可。比如初始页面是index.vue,那么就在Vue页面的mounted方法里执行一次
到时候大家自行封装一下。
Android端是在每个使用定位的页面,都要再次初始化一次。比如初始页Index.vue页面,那么你在这个Vue页面的mounted方法里执行一次。你如果vue项目由选择城市页面,那么比如在cityList.vue的页面的mounted方法里再次执行一次。依次类推,哪个页用到定位就需要执行一遍。
这样ios和Android端就都有了。 执行初始化的时候,要区分是不是ios端。如果不是才需要重试初始,是的话就不需要了,否则ios端就无法定位了。这是小程序的设计机制导致。
我们跟后台交互的时候,也需要传一个当前页面,来通过接口获取核心的appId,nonceStr,signature,timestamp。 通常这个接口要传url。我再附赠一个url的区分代码。
综上就万无一失了。