uniapp小程序之微信授權拒絕的處理方式


微信小程序的授權問題

同一個權限,wx.authorize第一次授權被拒,第二次調用wx.authorize就沒有作用了,會直接走fail的回調。

而且在第一次wx.authorize授權拒絕的情況下,js直接調用wx.openSetting也是無法打開授權頁面的。

 

解決方法是,

在個人中心(或其他任何合適的地方)做一個微信授權管理的菜單,在@tap的事件里調用wx.openSetting可再次成功調起授權頁面。

引導用戶手機修改微信授權

 

代碼示例

1,調用相機前先檢查權限

checkAuth(){
                // #ifdef MP-WEIXIN
                var that = this
                wx.getSetting({
                    success (res) {if(!res.authSetting['scope.camera']){
                            uni.showModal({
                                title: "提示",
                                content: "請授權使用相機,否則此功能將無法使用",
                                confirmText: "立即授權",
                                cancelText:"暫不授權",
                                success: function (res) {
                                    if (res.confirm) {
                                        wx.authorize({
                                            scope: 'scope.camera',
                                            success () {
                                               // 授權后要執行的代碼
                                            },
                                            fail(){
                             //授權拒絕會走這里 uni.showModal({ title:
'提示', content: "為了正常使用此功能,請在【個人中心】-【微信權限】中,打開相機權限", confirmText: '知道了', showCancel:false, success: res => { } }); return } }) } } }); }else{
                //授權后要執行的代碼
               }
 } }) // #endif
 } 

2,手動授權頁面

<view class="cu-item arrow"   @tap="auth()">
     <view class="content">
          <text class="cuIcon-settings text-blue"></text>
          <text class="text-grey">微信權限</text>
     </view>
</view>
auth(){
    wx.openSetting({
        success (res) {
            console.log(res.authSetting)
        }
    })
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM