1. 程式人生 > >關於小程序opensetting廢棄後地理位置的二次授權

關於小程序opensetting廢棄後地理位置的二次授權

只需要 隱藏 clas category str 界面 false long 重要

  由於小程序為了客戶體驗,在用戶首次拒絕授權後,彈窗短時間內將不會再出現。然而此時可能有些需要經緯度的重要數據就無法調取,因此需要引導客戶去再次授權。目前發現能夠吊起授權彈框的有wx.getLocation、 wx.authorize但是用戶拒絕後短期內調用這些api也不會出現授權彈框了。

  現如今opensetting也已經廢棄

<button hidden=‘{{!hiddenLoading}}‘ open-type="openSetting" bindopensetting=‘handler‘ class=‘getLocation‘>請先授權</button>

  這段代碼可以使用戶進入授權界面再度授權,而上面的按鈕則可以通過用戶是否授權來進行顯示或者隱藏(hiddenLoading)

技術分享圖片

此時我們只需要在handle裏再次調用該函數即可

  handler:function(){
    this.getAuthor();
  },
  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。倘若此時已經授權,便可以獲取到經緯度調取數據,否則按鈕仍然存在。

關於小程序opensetting廢棄後地理位置的二次授權