因为小程序为了客户体验,在用户首次拒绝受权后,弹窗短期内将不会再出现。然而此时可能有些须要经纬度的重要数据就没法调取,所以须要引导客户去再次受权。目前发现可以吊起受权弹框的有wx.getLocation、 wx.authorize可是用户拒绝后短时间内调用这些api也不会出现受权弹框了。git
现现在opensetting也已经废弃小程序
这段代码可使用户进入受权界面再度受权,而上面的按钮则能够经过用户是否受权来进行显示或者隐藏(hiddenLoading)api
此时咱们只须要在handle里再次调用该函数便可ide
由于本人小程序这方面所须要面对的状况也很少,因此并无写太多的判断。无论受权是否,handler函数都会执行!会调动getLocation。假若此时已经受权,即可以获取到经纬度调取数据,不然按钮仍然存在。函数
此外,一些手机并不支持二次受权的功能,你戳烂屏幕都没反应。只能判断他是否支持,this
wx.canIUse('button.open-type.openSetting')
若是不支持,则显示另外一段代码,提示客户手动去受权,点击三个点--关于XX小程序--三个点--设置;并附带一个按钮(判断受权,若受权就拉取数据,不然就return)spa
还有些手机即时打开也不行,你就看看那个一根筋的人是否是手机设置里就把GPS关了,我老板就是还每天嚷。。。。。嗯mmmcode