微信小程序——获取用户的运动步数

程序获取用户信息步骤

  • 点击参考微信文档中的授权
  • 首先程序先向用户申请访问哪些权限
  • 用户做出选择后返回给程序
  • 程序携带权限访问服务器
  • 如果用户允许则返回信息
  • 如果用户为允许则不返回
    在这里插入图片描述

自定义函数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.weRunDatareturn {weRunData}
    }
    
  • 将云函数重新上传 重新编译即可
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一次个人作业

该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2作业要求地址:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3340团队名称:脑壳痛 作业的目标 1.通过测试其他组的软件项目学习其…

微信小程序——解决上传并部署云函数时报错ResourceNotFound.Function, 未找到函数版本,请创建后再试。 (7f2d9d2d-5eac-4575-9n57-acd66cfa587g

1. 上传部署我们的云函数 2. 报错 错误信息为:Error: ResourceNotFound.Function, 未找到函数版本,请创建后再试。 (7f2d9d2d-5eac-4575-9b57-acd66cfa587e) 3. 原因 原因是可能我们在调试的时候不小心将我们开发控制台中的云函数删除了 4. 解决办法…

【IT界的厨子】酱香鲈鱼

食材: 前世曾经回眸的鲈鱼一条(主要选刺少的鱼,适合孩子吃,大人吃随意,草鱼比较大) 五花肉少许(肥一些的) 豆腐 辅料: 葱姜 蒜(选) 大料 香菜 调味: 啤酒(两罐) 黄豆酱或豆瓣酱(选) 老抽 生抽 料酒 盐 步骤: 1、鱼肉划开,方便炖的…

for each....in、for in、for of

一、一般的遍历数组的方法: var array [1,2,3,4,5,6,7]; for (var i 0; i < array.length; i) { console.log(i,array[i]); } 二、用for in的方遍历数组 for(let index in array) { console.log(index,array[index]); }; 三、forEach array.forEach(v>{ cons…

Vue cli3.0创建Vue项目

创建Vue项目 在要创建项目的文件夹下面打开Powershell窗口 输入命令 vue create 项目名称 选择第二项 回车后 选择是否使用历史路由 no 回车 选择 Less 回车 选择第三个 回车 选择第一个 回车 选择第一个 回车 是否保存模板 选择no 完成啦 完成

Remote desktop manager共享账号

因为多个远程机器&#xff0c;是会用了域账号进行登录的。而域账号的密码&#xff0c;三个月之后&#xff0c;密码强制过期 添加一个新的entry&#xff0c;类型是Credential Entry&#xff0c;然后选择用户名/密码 在remote desktop编辑的页面&#xff0c;Credentials选择Crede…

Mui常用的方法

中对话框 语法&#xff1a;mui.confirm 用法 mui.confirm("确认要切换角色&#xff1f;", "提示", btnArray, function(e) {if(e.index 1) {} else {}});组件名作用alert警告框confirm确认框prompt输入对话框toast消息提示框&#xff08;自动消失&#x…

java ListMapString,Object遍历的方法

java List<Map<String,Object>遍历的方法 public class Test {public static void main(String[] args) {List<Map<String, Object>> listMaps new ArrayList<Map<String, Object>>();Map<String, Object> map1 new HashMap<Strin…

vue如何更换网页标签的logo

Vue2 版本更换图标 在我们项目的根目录下面去添加或者替换 favicon.icon文件 找到我们的 build 文件夹下面的这两个文件 进行如下配置 favicon: resolveApp(’./favicon.ico’) 刷新后发现并没有什么效果 莫慌 最后一步 重启项目 改变端口 如果重启后还没有起到作用的话就…

《JavaScript高级程序设计》笔记总结

在北京上班的我每天在上下班路上的时间总共是两个半小时&#xff0c;为了充实这两个多小时的时间&#xff0c;我便花了银子换得了下面这个宝贝 本书内容&#xff08;引用书中前言&#xff09; 本书提供了JavaScript开发人员必须掌握的内容&#xff0c;全面涵盖了JavaScript的…

MUI H5+ 开发app基础

加载子页面(防止手机性能差,出现上下滑动卡顿) 其中 url 就是子页面的路径 id 为自定义 通常和页面名称一致页面的跳转和传值 切记 如果使用mui组件内的底部导航跳转的方式只能使用document获取元素的id 页面跳转传值 新页面接收参数 页面初始化 H5加载完毕 判断某个元素中是…

uni-app 组件传值

uni-app中的组件之间的传值 我们将compontents中的test文件作为子组件 引入到index中使用 引入并使用 效果如下 父传子 首先我们在父组件中使用子组件的标签中去自定义title 在子组件中 通过props去接收并处理 效果如下&#xff1a; 子传父 子组件中 设置一个按钮…

Docker 图形界面管理工具 -- Portainer

Portainer&#xff08;基于 Go&#xff09;是一个轻量级的管理界面&#xff0c;可让您轻松管理Docker主机或Swarm集群。 Portainer的使用意图是简单部署。它包含可以在任何 Docker 引擎上运行的单个容器&#xff08;Docker for Linux 和 Docker for Windows&#xff09;。 Port…

vue cli3.0创项目报错‘This may cause things to work incorrectly. Make sure to use the same version for b’

错误&#xff1a; throw new Error(^Error:Vue packages version mismatch:- vue2.6.12 (C:\Users\Administrator\AppData\Roaming\npm\node_modules\vue\dist\vue.runtime.common.js) - vue-template-compiler2.6.11 (C:\Users\Administrator\AppData\Roaming\npm\node_module…

Web程序中使用EasyUI时乱码问题

今天偶然遇见使用easyUI时&#xff0c;弹窗和分页都是乱码的问题&#xff0c;耗费了很长的时间来解决&#xff0c;以此记住这个坑。 相信大家都会在使用easyUI时都会设置这样一句&#xff1a; 那么就有可能出现设置中文后的乱码问题&#xff0c;如下图&#xff1a; 因为在使用e…

160-PHP 文本替换函数str_replace(一)

<?php$strHello world!; //定义源字符串$searcho; //定义将被替换的字符$replaceO; //定义替换的字符串$resstr_replace($search,$replace,$str); //使用函数处理字符串echo "{$str}替换后的效果为&#xff1a;<br />{$res}";…

看完就懂的编辑页面如何巧妙处理时间

需求分析 分析&#xff1a; 我们通常会遇到这种情况&#xff0c;当我们制作一个表单页面的时候&#xff0c;通常会有添加和编辑的情况&#xff0c;我们在提交的时候还需要将时间的格式转换为字符串格式进行传参。 在这里我们使用的是 iview 中的 DatePicker type格式为datetime…

关于“wap2app仅支持对已通过ICP备案的域名站点进行打包”问题解决

关于“wap2app仅支持对已通过ICP备案的域名站点进行打包”问题解决 如果我们是通过Vue技术写的移动端&#xff0c;开发完成后我们的项目需要放到服务器上&#xff0c;然后我们在将服务器上面的项目打包apk格式 wap2app将网页打包成apk步骤 使用HbuilderX创建一下wap2app项目 我…

mysql之库操作_创建用户_修改用户权限_修改用户密码

用户操作&#xff1a; 1、create user Faye127.0.0.1IDENTIFIED BY 123 #添加一个用户名字为Faye的用户,127.0.0.1为本机的ip,123为密码 补&#xff1a;create user Faye% IDENTIFIED BY 123 #添加一个用户名字为Faye的用户,‘%’的意思为所有人都可以连接Faye这个用户,123为…

前端导出文件,后端返回文件流过大直接干崩溃

前端导出文件 前端很常见的导出需求 导出world xlsx 甚至是zip 在我这个项目中是导出图片&#xff0c;图片量还是蛮大的&#xff0c;直接干崩溃了 我们这里是后端同学直接返回的是文件流 通过调用接口拿到文件流后直接调用下面的方法 export function exportZip(res, name)…