<template> <view> <h2>index页面</h2> <!-- 当用户初始时或者由于失误拒绝授权时,需要点击事件手动授权 --> <button @click="getHandle">手动授权按钮</button> <!-- 获取的用户头像 --> <image :src="imgInfo"></image> </view> </template> <script> export default { 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("登陆失败") } }) } }, } </script> <style> </style>
uniapp小程序登录、数据请求方式
猜你喜欢
转载自www.cnblogs.com/Alex-Song/p/12165457.html
今日推荐
周排行