小程序用户拒绝授权后

小程序用户拒绝授权后,第1张

假设首页有个扫描按钮,点击后正常情况直接进入扫描页面。但是如果用户先前已经拒绝授权使用camera了,就需要引导用户进入授权设置页面。步骤:

1、先通过getSetting->authSetting对应的'scopecamera'获取camera授权状态,如果第一次用,还未授权,则结果res里面不包含'scopecamera',也就是取到undefined;反过来说,结果为undefined时,表示还没询问授权;如果返回true,表示用户已经同意授权;如果结果为false,表示已经询问用户授权,且用户已经拒绝授权。

2、用户拒绝授权之后,通过wxopenSetting打开授权设置页面,可让用户重新设置授权信息。

微信小程序对于用户信息获取进行了接口调整。调用 wxgetUserInfo(Object object) 不会再由d窗授权提示。在已授权时,可以直接获取用户信息;否则则直接进入 fail 回调函数。

用户的授权状态可以用 wxgetSetting() 接口的请求的结果

resauthSetting['scopeuserInfo'] 来判断。

那么在接口调整后,再进行授权登录则需要通过 open-data 来实现。

注:如果用户微信版本不支持open-data,需要提示用户升级。这次接口的调整实际上使得按一次d窗中的授权按钮即可授权的 *** 作变成了需要按两次,并且需要额外设计授权页面或者在主页先进行一次d窗引导用户授权。实际上更加繁琐。

使用wxgetUserInfo(Object object),调用前需要 用户授权 scopeuserInfo。

示例代码

// 必须是在用户已经授权的情况下调用

wxgetUserInfo({

success: function(res) {

var userInfo = resuserInfo

var nickName = userInfonickName

var avatarUrl = userInfoavatarUrl

var gender = userInfogender //性别 0:未知、1:男、2:女

var province = userInfoprovince

var city = userInfocity

var country = userInfocountry

}

})

扩展资料

小程序用户信息组件示例代码

Page({

data: {

canIUse: wxcanIUse('buttonopen-typegetUserInfo')

},

onLoad: function() {

// 查看是否授权

wxgetSetting({

success (res){

if (resauthSetting['scopeuserInfo']) {

// 已经授权,可以直接调用 getUserInfo 获取头像昵称

wxgetUserInfo({

success: function(res) {

consolelog(resuserInfo)

}

})

}

}

})

},

bindGetUserInfo (e) {

consolelog(edetailuserInfo)

}

})

参考资料:

微信官方文档 - wxgetUserInfo

wxgetSetting()会得到小程序的授权情况,如果授权失败给用户提示,要求用户打开地图请求的权限,wxopenSetting()

pagejs

Page({

    data: {},

    onLoad() {

    

    },

    onShow() {

        

    },

    chooseAddress(e) { // button 绑定一个tap事件,指向这个方法

        wxgetSetting({

            success(res) {

                if (resauthSetting['scopeuserLocation']) { // resauthSetting['scopeuserLocation'] 等于true就是用户成功授权了 

                    wxchooseLocation()

                } else { // 没有授权过的打开wxopenSetting()

                    wxopenSetting({

                        success(res) { //授权成功 },

                        fail(res) { //授权失败,例如直接点击了返回 }

                    })

                }

            }

        })

    }

})

获取用户的当前设置。 返回值中只会出现小程序已经向用户请求过的 权限

返回值:请求过的权限可以通过 resauthSetting 拿到,

用户是否授权通过 resauthSetting[scopeuserInfo] 可以判断

{scopeuserInfo:true} 授权为true

实际开发中可以在onload生命周期函数中先wxgetSetting()获取用户请求过的权限,然后判断用户是否授权(如果resauthSetting[scopeuserInfo]为true),如果授权则可以直接获取用户信息(wxgetUserInfo()),获取用户信息后可以显示微信名和微信头像

多次拒绝登录和允许登录

微信小程序的登录获取用户信息,是通过微信d出窗口,用户可点击允许 和拒绝两个按钮,点击允许,则获取用户信息登录成功,若点击拒绝,则获取失败,可通过二次请求调用d起获取用户信息窗口。

具体代码如下:

//appjs

App({

onLaunch: function () {

//调用API从本地缓存中获取数据

var logs = wxgetStorageSync('logs') || [];

logsunshift(Datenow());

wxsetStorageSync('logs', logs);

consolelog('logs',logs);

},

getUserInfo:function(cb){

var that = this;

//调用登录接口

function getOpenid(backMsg){

thatglobalDatauserInfo = backMsguserInfo;

thatglobalDataencryptedData = backMsgencryptedData;

thatglobalDataiv = backMsgiv;

thatglobalDatalogin = true;

consolelog(thatglobalDatacode);

wxrequest({

url:thatlocalUrl+'Login/sendCodeLogin',

data:{

code:thatglobalDatacode,

encryptedData: backMsgencryptedData,

iv:backMsgiv

},

success:function(openData){

consolelog('返回openid',openData,openDatadata);

if(openDatadatacode==1001){

thatglobalDataopenid = openDatadatadataopenid;

wxsetStorageSync('openid',thatglobalDataopenid);

wxsetStorageSync('userInfo',thatglobalDatauserInfo);

wxsetStorageSync('isManager', openDatadatadataisManager);

wxshowToast({

title: '登录成功',

icon: 'success',

duration: 500

});

typeof cb == "function" && cb(thatglobalDatauserInfo);

}else{

wxshowLoading({

title: '登录失败'

});

setTimeout(function () {

wxhideLoading();

}, 500)

}

}

})

}

wxlogin({

success: function (msg) {

consolelog('code',msg);

if(msgcode){

thatglobalDatacode = msgcode;

if(thatglobalDatalogin==false){

wxopenSetting({

success: function (data) {

if(data) {

if (dataauthSetting["scopeuserInfo"] == true) {

//loginStatus = true;

wxgetUserInfo({

withCredentials: false,

success: function (res) {

consolelog('第二次成功',res);

getOpenid(res);

},

fail: function (res) {

thatglobalDatalogin = false;

consolelog('二次失败',res);

}

});

}else{

thatglobalDatalogin = false;

consolelog('二次失败02');

}

}

},

fail: function () {

consoleinfo("设置失败返回数据");

}

});

}else{

wxgetUserInfo({

success: function (res) {

consolelog('第一次成功',res);

getOpenid(res);

},fail:function(msg){

thatglobalDatalogin = false;

consolelog('第一次失败',msg);

}

})

}

}

},

fail:function(res){

consolelog(res);

}

})

},

globalData:{

userInfo:null,

encryptedData:null,

iv:null,

openid:null,

code:null

}

});

以上就是关于小程序用户拒绝授权后全部的内容,包括:小程序用户拒绝授权后、微信小程序用户信息获取接口的调整、微信小程序的怎么获取用户微信id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9678121.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存