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