程序获取用户信息步骤
- 点击参考微信文档中的授权
- 首先程序先向用户申请访问哪些权限
- 用户做出选择后返回给程序
- 程序携带权限访问服务器
- 如果用户允许则返回信息
- 如果用户为允许则不返回
自定义函数getUserRun
为获取用户的微信运动数据 页面加载调用此函数函数中执行下面操作
1. 获取用户的权限设置
- wx.getSetting(object,object)获取当前用户的设置,返回值就是小程序向客户请求过的权限(包括允许和未允许的)
- 函数中的success是成功后执行 输出内容中的authSetting为空对象 说明当前用户没有对改程序开放任何权限
2.判断用户是否对微信运动步数进行授权
- 当用户对微信运动步数授权后 setting中的成功返回值authSetting中的对象应该包括scope.werun
- 可以根据返回值authSetting对象中是否包含scope.werun而进行判断
2.1 如果用户还没有授权
- 通过调用wx.authorize(object,object)立刻弹窗询问是否授权小程序使用某项功能或获取用户的某些数据,如果用户已经授权则不会弹起
- scope的参数值就是要申请的权限
- 用户允许后执行sucess函数
- 调用自定义方法获取用户微信运动数据
- 用户不允许则执行fail函数
- 在函数中 通过wx.showModal弹出提示框 title为标题 content为内容 用户确认后提示框消失
2.2 如果用户已经授权
- 调用自定义方法(此方法就是获取用户微信运动的数据)
3. 自定义函数读取用户微信运动数据
//定义函数读取用户微信运动数据 getWeRunData() { wx.getWeRunData({ success(res) { console.log(res) } }) },
- 通过调用wx.getWeRunData(Object object)接口获取用户过去三十天微信运动步数。需要先调用 wx.login 接口。步数信息会在用户主动进入小程序时更新。
- 但是返回的数据出于安全是加密的 通过如下方式进行解密
- 重新编译自定义函数代码
//定义函数读取用户微信运动数据 getWeRunData() { wx.getWeRunData({ success(res) { //由于数据是进行加密的所以我们通过条用云函数的方式进行解密 wx.cloud.callFunction({ name: 'deswerundata', data: { weRunData: wx.cloud.CloudID(res.cloudID) // 这个 CloudID 值到云函数端会被替换 } }).then(res=>{ console.log(res) }) } }) },
- 其中name的值就是我们要调用的云函数名称
- data就是我们要传递的数据
- .then就是请求完云函数后我们要得到返回的数据
- 创建云函数deswerundata
- 编辑此云函数中的index.js中的代码为
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init() // 云函数入口函数 exports.main = async (event, context) => { let weRunData = event.weRunData return { weRunData } }
- 将云函数重新上传 重新编译即可