微信小程序> 微信小程序通讯地址授权拒绝后的处理方式

微信小程序通讯地址授权拒绝后的处理方式

浏览量:1028 时间: 来源:StruggleRookie

在小程序开发时,在用户拒绝获取通讯地址的授权后,在一段时间内将无法在弹出授权提示导致无法获取通讯地址。通过看微信的api文档,发现其中有一个wx.openSetting()方法可以打开设置页面进行授权。但wx.openSetting()方法打开的设置页面只能显示用户请求过的授权,未请求过的是无法显示在设置页面。所以须先调用wx.authorize()方法进行请求授权。

处理步骤

1、在需要调用通讯地址页面对应的onload方法中调用wx.authorize()请求通讯地址授权。

wx.getSetting({//先获取用户当前的设置      success(res) {        if (!res.authSetting['scope.address']) {          wx.authorize({            scope: 'scope.address',            success(res) {              console.log(res.errMsg);//用户授权后执行方法            },            fail(res){             //用户拒绝授权后执行            }          })        }      }    })
scope.address 是通讯地址授权对应的scope值
2、在对应的调起用户通讯地址的事件中加入以下代码处理

    var that = this;    wx.getSetting({      success(res) {        if (!res.authSetting['scope.address']) {          wx.openSetting({          })        }else{          //打开选择地址          wx.chooseAddress({            success: function (res) {              that.setData({                address: res,                noAddress: false              });            }          })        }      },      fail(res){        console.log('调用失败')      }    })

调用wx.getSetting()获取用户的当前设置,success方法返回的值如下:

/* * res.authSetting = { *   "scope.userInfo": true, *   "scope.userLocation": true * } */

如果res.authSetting['scope.address']返回true说明已经授权会直接打开通讯地址列表页面如下图

小程序

如果返回的是undefined或false则会进入打开设置页面,进行设置页面后将通讯地址勾选上在重新打开即可进入上面的图所示的页面。

小程序小程序

对于微信的其他的授权api在用户拒绝授权后可以进行上述方法的处理。


小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎