美文网首页
当小程序弹出授权禁止后按钮点击重新打开授权界面

当小程序弹出授权禁止后按钮点击重新打开授权界面

作者: LeePillar | 来源:发表于2018-09-02 17:01 被阅读0次

    以小程序保存图片到本地为例

    一、先在js中创建按钮初始状态变量

    Page({
        data: {
            saveShareBtn: false,
        }
    },
    

    二、在wxml中添加按钮

    注意:bindopensetting="authOpen"是当前授权结果的回调函数(在第四中查看代码)

    <block wx:if="{{saveShareBtn == true}}">
            <button  disabled="{{shareBtn}}" bindtap="saveShareCode" >保存图片处理函数saveShareCode</button>
    </block>
    <block wx:else>
            <button disabled="{{shareBtn}}" open-type="openSetting" bindopensetting="authOpen">保存图片打开授权</button>  
    </block>
    

    三、判断授权按钮状态

    1、写一个判断授权按钮状态的函数
    2、当第一次进入会弹出是否允许授权,如果点了允许或禁止会在bindopensetting="authOpen"的回调函数(见第四)中重新设置按钮状态
    3、当点了禁止再次点击按钮会弹出微信权限设置界面,在界面中允许或禁止都会在bindopensetting="authOpen"的回调函数(见第四)中重新设置按钮状态

    isAuth: function (res) {
       let that = this;
        //判断图片权限
        wx.getSetting({
          success(res) {
            if (res.authSetting['scope.writePhotosAlbum']) {
              that.setData({saveShareBtn: true})
            }else{
              wx.authorize({
                scope: 'scope.writePhotosAlbum',
                success(res) {
                  console.log('允许保存图片');
                }
              })
            }
          },
        })
      }
    

    2、在js的onShow中引入上面的isAuth函数,您也可以在其他需要授权的地方引入,非必须在onShow中引入。

    onShow:function(){
      let that = this;
      that.isAuth()
    }
    

    四、授权回调函数

    (当第一次禁止后需要重新打开),可以判断按钮状态,是上面第二步中的按钮选择使用哪个按钮

      //判断授权结果
      authOpen: function (res) {
        let that = this;
        if (res.detail.authSetting['scope.writePhotosAlbum']) {
          that.setData({ saveShareBtn: true })
        } else {
          that.setData({ saveShareBtn: false })
        }
      },
    

    相关文章

      网友评论

          本文标题:当小程序弹出授权禁止后按钮点击重新打开授权界面

          本文链接:https://www.haomeiwen.com/subject/aipmwftx.html