微信小程序拒绝授权后的处理

在微信小程序里,有很多需要用户授权的功能,比如读取通讯地址,读取地理位置,读取录音等等,可能是为了提升用户体验,微信设定是只要用户拒绝了授权,那么以后都不会再出现授权窗口。。。。

解决办法,调用 openSetting。以通讯地址授权为例:

// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.address" 这个 scope
wx.getSetting({
  success(res) {
    if (!res.authSetting['scope.address']) {
      wx.authorize({
        scope: 'scope.address',
        success () {
          // 用户已经同意小程序读取通讯地址,后续调用 wx.address接口不会弹窗询问
          
        }
        fail () {
          // 用户拒绝了授权,弹出一个自定义层,显示授权按钮:
          //<button open-type="openSetting" bindopensetting="callback">打开设置页</button>
        }
      })
    }
  }
}
当用户授权后返回小程序时,可以在onShow里增加处理,关闭授权提示信息。

有话要说