zoukankan      html  css  js  c++  java
  • 小程序用户拒绝授权解决方法

    众所周知,小程序进入首先都要进行微信授权的,那万一用户不小心点了拒绝按钮怎么办呢?不要慌,官方早已预料到此情况,并提供了api供开发者使用,下面就一起来研究下api吧

    一、API接口

    wx.openSetting(OBJECT)
    
    调起客户端小程序设置界面,返回用户设置的操作结果。
    
    注:设置界面只会出现小程序已经向用户请求过的权限。
    
    wx.getSetting(OBJECT)
    
    获取用户的当前设置。
    
    注:返回值中只会出现小程序已经向用户请求过的权限。

    二、API调用顺序

    首先要知道咱们解决的问题是什么,其次才是怎么解决问题。

    需要解决的问题:用户拒绝授权,在需要其授权的信息的页面打开授权,让用户再次进行授权(ps:表达能力有限)

    分析问题:1.拒绝授权;2.再次授权

    1:既然已拒绝授权,那么肯定已经调用了wx.getUserInfo()方法,那么先看下这个api吧

            wx.getUserInfo({
                success: function (res) {//用户同意授权时返回的数据
                    var userInfo = res.userInfo
                    wx.setStroageSync('userInfo', userInfo)//获app.userInfo = userInfo
                    var nickName = userInfo.nickName
                    var avatarUrl = userInfo.avatarUrl
                    var gender = userInfo.gender //性别 0:未知、1:男、2:女
                    var province = userInfo.province
                    var city = userInfo.city
                    var country = userInfo.country
                },
                fail: function (ret) {//用户拒绝授权时的操作
                    // 
    
                }
            })

    2.再次授权

            // 在需要用户授权时调用wx.getSetting()
            wx.getSetting({
                success: function (res) {
                    if (res.authSetting["scope.userInfo"]) {//用户已授权
                        wx.getUserInfo({
                            success: function (data) {
                                var scopeData = data.userInfo;
                                wx.setStorageSync('userInfo', scopeData);
                            }
                        })
                    } else {//用户未授权
                        // 可以添加个提示信息,在这里就我就不写了哈
                        wx.openSetting({//打开小程序设置页面,用户自己选择授权
                            success: function (res) {
                                res.authSetting = {
                                    "scope.userInfo": true
                                }
                            }
                        })
                    }
                }
            })
           

    3.注

     最后一点要注意,在小程序的设置页面,用户点击按钮是没有办法进行其操作的,要在其返回页面的onShow方法里进行wx.getSetting的success()操作

  • 相关阅读:
    N层电梯只停一层情况下,求所有人爬楼层数最少
    小组开发用户调研
    《哈利波特》买书最优惠算法
    团队开发——极速蜗牛
    林锐——软件工程思想后两章阅读笔记
    课堂练习之检测水军
    团队开发项目-----来用------典型用户与用户场景分析
    体验结对开发的乐趣(6)--(电梯调度问题)
    团队开发项目-----来用------用户需求调研报告
    课堂练习之最高折扣,最低优惠规划
  • 原文地址:https://www.cnblogs.com/cloud-k/p/8431518.html
Copyright © 2011-2022 走看看