【微信小程序】再次授权地理位置getLocation+openSetting使用

 最近公司做了一些有关微信小程序的项目,涉及到授权获取用户基本信息,但是在拒绝授权之后就不会再出现授权窗口;

  看网上也有很多人遇到了同样的问题,所以记录下来我的处理方法,供大家和自己学习和记录:

  当调用小程序 wx.getUserInfo(OBJECT) 获取用户基本信息时,需要用户进行授权操作,如果用户点击了拒绝,则再次调用该方法就不会出现对应的授权窗口,很是让人困惑;

  找了许久,最后让我发现了它:------> wx.openSetting(OBJECT),下面让我们认识一下:

  wx.openSetting(OBJECT)

  设置:调起客户端小程序设置界面,返回用户设置的操作结果;基础库 1.1.0 开始支持,低版本需做“兼容处理

  

  

  通过该方法可继续进行授权操作,不多做解释,直接上代码:

onLoad: function (options) {

    console.log("onLoad=====");
    var that=this;
    wx.getUserInfo({
      success:function(res){
        var userInfo = res.userInfo;
        that.setData({
          nickName: userInfo.nickName,
          avatarUrl: userInfo.avatarUrl,
        })
      },fail:function(){
        wx.showModal({
          title: '警告',
          content: '您点击了拒绝授权,将无法正常显示个人信息,点击确定重新获取授权。',
          success:function(res){
            if (res.confirm){
//重点:从这里开始就是重新授权调取
              wx.openSetting({
                success: (res) => {
                  if (res.authSetting["scope.userInfo"]){ //如果用户重新同意了授权登录scope.userLocation是表示位置授权 true/false
                    wx.getUserInfo({
                      success:function(res){
                        var userInfo = res.userInfo;
                        that.setData({
                          nickName:userInfo.nickName,
                          avatarUrl:userInfo.avatarUrl,
                        })
                      }
                    })
                  }
                },fail:function(res){
                 
                }
              }) 
//重点:调取结束
            }
          }
        })
      }, complete: function (res){


      }
    })
  }

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值