小程序用户拒绝受权解决方法

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

1、API接口api

wx.openSetting(OBJECT)

调起客户端小程序设置界面,返回用户设置的操做结果。

注:设置界面只会出现小程序已经向用户请求过的权限。

wx.getSetting(OBJECT)

获取用户的当前设置。

注:返回值中只会出现小程序已经向用户请求过的权限。

2、API调用顺序微信

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

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

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

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

        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.注ci

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

相关文章
相关标签/搜索