微信小程序中用户拒绝授权的处理方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序中用户拒绝授权的处理方式相关的知识,希望对你有一定的参考价值。

参考技术A https://www.jianshu.com/p/80e33d16182f

//获取用户地理位置权限

  getPermission: function (callback) 

    wx.getLocation(

      success: function (res) 

        console.log(res, 'getLocation成功')

        if (res.latitude && res.latitude != '') 

          // wx.showToast(

          //   title: '进行搜索',

          // )

          //进行搜索

          callback()

        

      ,

      fail: function () 

        wx.getSetting(

          success: function (res) 

            // console.log(res, '之前允许')

            if (res.authSetting['scope.userLocation'] == true) 

              wx.showToast(

                title: '请打开手机位置服务',

                icon:'none',

                duration:2000,

              )

             else 

              wx.showModal(

                title: '提示',

                content: '您拒绝了定位权限,将无法使用蓝牙搜索功能',

                showCancel: false,//是否显示取消按钮

                success: res => 

                  if (res.confirm) 

                    wx.showToast(

                      title: '删除小程序,重新进入',

                      duration:2000,

                      icon:'none'

                    )

                  

                

              )

            

          ,

          fail: function (res) 

            // console.log(res, '之前拒绝')

            wx.showToast(

              title: '请删除小程序,重新进入',

              icon:'none'

            )

          ,

        )

      

    )

  ,

微信小程序获取unionId

1,微信开放平台如果没有绑定微信小程序,不可能获取到unionId,无论哪种方式

2,遵照UnionId机制

  1. 调用接口 wx.getUserInfo,从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。

  2. 如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户再次授权。

3,方式一:

   1. 根据code2Session获取openId,如果有unionid直接返回

   2. 根据getAccessToken获取access_token

   3. 根据getPaidUnionId获取unionid

  方式二:

   1. 前端js调取公开接口wx.getUserInfo,注意withCredentials 应该传true,否则无法获取encryptedData和iv

   2. 根据code2Session获取session_key和openid,如果有unionid直接返回

      3. 根据session_key,encryptedData和iv进行AES解密

以上是关于微信小程序中用户拒绝授权的处理方式的主要内容,如果未能解决你的问题,请参考以下文章

关于微信小程序拒绝授权后,重新授权并获取用户信息

关于微信小程序拒绝授权后,重新授权并获取用户信息

微信小程序授权问题

微信小程序获取unionId

微信小程序获取unionId

微信小程序用户授权