關於微信小程式使用者拒絕授權後不再彈出授權視窗

你看我多像一條狗發表於2018-08-22

最近在開發小程式的時候發現了一些小問題,由於小程式 五月份進行了一些規則調整 獲取使用者授權需要引導使用者手動觸發,這樣就導致之前直接彈窗的方式不可用了,比如我想要獲取使用者的通訊地址,當使用者點選拒絕後,後續想要獲取就需要引導使用者去設定裡面開啟許可權

<view class="dizhi" bindtap="getMobile">
  <view>
    <image src="/images/dizhi.png"/>
      <text>地址管理</text>
  </view>
  <image class="jiantou" src="/images/jiantou.png"/>
</view>

<!--下面這個按鈕暫時先隱藏-->
<button class="open" hidden="{{open}}" open-type="openSetting" bindtap="openSetting"> 修改授權 </button > 

可以通過 wx.getSetting 先查詢一下使用者是否授權了 "scope.address" 這個 scope 

 onShow() {
    var that = this;
    wx.getSetting({
       success(res) {
            console.log(res.authSetting['scope.address'])
            if (!res.authSetting['scope.address']) {
                wx.authorize({
                  scope: 'scope.address',
                    success() {  // 使用者已經同意小程式獲取使用者資訊
                      that.setData({
                        address: res,
                        noAddress: false
                     });
                 },
                    fail: res=>{
                       _this.setData({
                          open: false
                        })
                    }
                })
            }
        }
    })
}

如果使用者拒絕了授權,想要再次獲取授權的話2,那麼就引導使用者去設定裡面開啟就好了,就是這一段程式碼,其他授權同樣也可以參考此方法

<button class="open" hidden="{{open}}" open-type="openSetting" bindtap="openSetting"> 修改授權 </button >

 

相關文章