关于小程序opensetting废弃后地理位置的二次授权

Posted 从来风花雪月无常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于小程序opensetting废弃后地理位置的二次授权相关的知识,希望对你有一定的参考价值。

 

  由于小程序为了客户体验,在用户首次拒绝授权后,弹窗短时间内将不会再出现。然而此时可能有些需要经纬度的重要数据就无法调取,因此需要引导客户去再次授权。目前发现能够吊起授权弹框的有wx.getLocation、 wx.authorize但是用户拒绝后短期内调用这些api也不会出现授权弹框了。

  现如今opensetting也已经废弃

<button hidden=\'{{!hiddenLoading}}\' open-type="openSetting" bindopensetting=\'handler\' class=\'getLocation\'>请先授权</button>

  这段代码可以使用户进入授权界面再度授权,而上面的按钮则可以通过用户是否授权来进行显示或者隐藏(hiddenLoading)

此时我们只需要在handle里再次调用该函数即可



handler: function() {
this.getLoaction();
}
getLoaction() {
const that = this;
wx.getLocation({
type: \'gcj02\',
success: function(res) { /*console.log(\'success\')*/
latitude = res.latitude;
longitude = res.longitude;
that.categoryList(); /*这是我通过经纬度调取数据的函数*/
that.setData({
hiddenLoading: false
});
},
fail: function() { /* console.log(\'fail\');*/
wx.hideLoading();
that.setData({
hiddenLoading: true
})
}
})
}

因为本人小程序这方面所需要面对的情况也不多,所以并没有写太多的判断。不管授权是否,handler函数都会执行!会调动getLocation。倘若此时已经授权,便可以获取到经纬度调取数据,否则按钮仍然存在。

此外,一些手机并不支持二次授权的功能,你戳烂屏幕都没反应。只能判断他是否支持,

 

 wx.canIUse(\'button.open-type.openSetting\')

 

如果不支持,则显示另一段代码,提示客户手动去授权,点击三个点--关于XX小程序--三个点--设置;并附带一个按钮(判断授权,若授权就拉取数据,否则就return)

还有些手机即时打开也不行,你就看看那个一根筋的人是不是手机设置里就把GPS关了,我老板就是还天天嚷。。。。。嗯mmm

以上是关于关于小程序opensetting废弃后地理位置的二次授权的主要内容,如果未能解决你的问题,请参考以下文章

关于openSetting通过tap的调用

打开小程序设置页(wx.openSetting),注意点

小程序获取地址授权的修改 wx.openSetting需点击

设置API:wx.openSetting,wx.getSetting使用说明(示例:地图授权与取消授权后的重新授权)

微信小程序-获取当前位置和城市名

微信小程序~wx.getUserInfo逐渐废弃,小程序登录过程将如何优化?