小程序用戶拒絕受權解決方法

衆所周知,小程序進入首先都要進行微信受權的,那萬一用戶不當心點了拒絕按鈕怎麼辦呢?不要慌,官方早已預料到此狀況,並提供了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()操做開發

相關文章
相關標籤/搜索