index页面
手动授权按钮
exportdefault{
data() {return{
imgInfo:"",//头像
nickName:""//昵称
}
},
onLoad() {//初始时获取用户设置
this.accessPermission();
},
methods: {//执行获取用户设置的函数
accessPermission() {//赋值this指向
var _this=this;//获取授权信息
uni.getSetting({
success(res) {//判断scope后对应的scope.userInfo是否授权
if (res.authSetting['scope.userInfo']) {//如果已经授权,则获取用户信息
uni.getUserInfo({
success(res){//获取信息后执行登录
_this.handleLogin(res);
},
fail(err){
console.log("获取用户信息失败")
}
})
}else if (!res.authSetting['scope.userInfo']) {//如果没有授权则进行提前授权--进入页面时弹出
//不配置此项初次进入页面不会弹出申请权限窗口
uni.authorize({//配置授权选项--用户账号信息
scope:'scope.userInfo',
success(res){//授权成功后可以直接获取用户相关信息
console.log("授权成功")
},
fail(err){//提前授权失败时,等待用户手动点击授权
console.log("授权失败")
}
})
};
}
})
},//点击按钮激发授权事件
getHandle() {//重赋值this
var _this=this;//获取用户授权设置
uni.getSetting({
success(res){if(res.authSetting['scope.userInfo']){//如果要获取的权限已经授权,则直接获取相关信息
uni.getUserInfo({
success(res){//获取相关数据后,进行登录及数据请求
_this.handleLogin(res);
},
fail(err){//错误信息
console.log(err)
}
})
}else if(!res.authSetting['scope.userInfo']){//如果要获取的权限尚未授权,则此时触发授权,打开设置页面
uni.showModal({//弹出提示框
title: '是否打开设置页?',
content:'需要在设置中获取xx信息和xx权限',
success(res) {if(res.confirm) {
uni.openSetting({//弹出框,确认后打开设置页面
success(res) {
console.log(res.authSetting)
},
})
}else if(res.cancel) {
console.log('用户点击取消');
}
}
});
}
}
})
},//执行登录,数据请求的方法
handleLogin(infoRes){this.imgInfo=infoRes.userInfo.avatarUrl;//头像信息
this.nickName=infoRes.userInfo.nickName;//昵称
let encryptedData=infoRes.encryptedData;//用户信息的加密数据串
let iv=infoRes.iv;//加密算法秘钥
//进行用户登录
uni.login({
success(res){if(res.code){//登录成功后且code存在,则进行数据请求
uni.request({//请求路径
url:"http://m.maoyan.com/ajax/movieOnInfoList",//携带参数
data:{
code:res.code,//请求时携带参数
},
method:"GET",
success(res){
console.log(res);
},
fail(err){
console.log("数据请求失败")
}
})
}else{//无code时不执行数据请求
console.log("无code")
}
},
fail(err){
console.log("登陆失败")
}
})
}
},
}