关于微信小程序uniapp版的推送消息
1.按钮触发推送消息
<button type="primary" size="mini" @tap="pushMesage">推送消息</button>
2.pushMesage方法调用uniapp自带的消息推送授权窗口
值得注意的是:①tmplIds是一个数组,这个数组里可以储存多个模板ID,当你需要切换模板进行推送时切换数组下标即可。
②弹窗授权需要点击允许接收来自小程序的消息提醒,目前微信小程序里面有两种模板,第一种是一次性模板:也就是每次授权接收消息在一段时间内只能接收一次消息,接收完之后就需要重新授权。第二种是长期模板:长期授权模板一般用于政务民生之类类目的小程序,一般开发者不太好申请。这种模板只需要授权一次即可长期接收来自小程序的推送(因为这个特性,在前端代码编写的时候需要考虑一点,需要判断用户是否点击授权来决定用户登录时是否弹出授权框,这个问题也好解决:用户授权调用接口将授权状态储存在数据库就行,在用户登陆成功时多返回一个授权状态的字段,前端判断是否弹窗授权即可。)
pushMesage() {console.log("消息推送开始弹窗确认")uni.requestSubscribeMessage({tmplIds: ['你的模板ID'],success: (res) => {console.log("弹窗",res)if (res['你的模板ID'] === 'accept') {this.sendMsg()}}})}
3.sendMsg方法调用相关接口获得相关参数并且发送消息推送
值得注意的是:①这个案例只是前端发送通知,用于了解推送消息的基本流程。实际开发中前端只需要弹窗授权获取jscode传递给后端,由后端请求微信api推送消息
②openId不会过期可以储存在数据库,后续需要推送消息直接取用就行。
async sendMsg() {const js_code = await this.getJsCode();const openid = await this.getOpenId(js_code);const access_token = await this.getAccessToken();console.log("js_code: ", js_code);console.log("openid: ", openid);console.log("access_token", access_token)uni.request({url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' +access_token,method: 'POST',data: {touser: openid,template_id: 'xxxx', // 模板idpage: "pagesV2/info/userinfo/usercommit?dailytype=1&menuType=0", // 点击消息卡片跳转地址data: { // data是模板内容,属性名为模板中所给,value值是需要传递的。date3: {value: '2022-06-04 20:33:44'},thing5:{value:'有新注册申请通知,请尽快审核'},thing1: {value: '注册申请'}}},success: (res) => {console.log(res);}})},//获取jsCode用于获取OpenIdgetJsCode() {return new Promise((resolve, reject) => {uni.login({success(res) {console.log("unilogin",res)resolve(res.code)},fail: (err) => {reject(err)}})})},//获取OpenId用于发送消息getOpenId(js_code) {return new Promise((resolve, reject) => {uni.request({url: `https://api.weixin.qq.com/sns/jscode2session`,data: {appid: '小程序的appid(在微信开放平台获取)',secret: '小程序的密钥(同上获取)',js_code: js_code,grant_type: 'authorization_code'},success: (res) => {console.log("getOpenId", res.data)resolve(res.data.openid)},fail(err) {reject(err)}})})},// 获取access_token用于发送消息getAccessToken() {return new Promise((resolve, reject) => {uni.request({url: 'https://api.weixin.qq.com/cgi-bin/token',data: {appid: '小程序的appid',secret: '小程序的密钥',grant_type: 'client_credential'},success: (res) => {console.log("getAccessToken", res.data)resolve(res.data.access_token)},fail: (err) => {reject(err)}})})},
关于微信小程序uniapp版的推送消息相关推荐
- 小程序消息主动推送php,微信小程序有几种推送消息的方式
微信小程序有5种推送消息的方式,分别为:1.小票机订单提醒,实现对商家的消息提醒:2.短信提醒:3.模板消息,各种动态可及时掌握:4.公众号订单提醒:5.消息主动推送,商家主动出击.推销自己的最好手段 ...
- uniapp如何使用微信小程序的订阅信息推送消息给用户?
1.首先获取小程序用户登录openId // 获取openidasync opid() {let self = thiswx.login({success(res) {if (res.code) { ...
- 微信小程序向公众号推送消息超详细教程
官方教程 官方教程 开通一下服务号公众号 超级管理员登录服务号公众号后台 登录地址 开通模板消息 申请一个模板消息,获取模板ID 注意此处的参数,后续接口需要使用 绑定公众号与小程序 官方教程 1.登 ...
- 微信小程序云开发定时推送订阅消息
微信小程序云开发定时推送订阅消息 1.找到自己想要的模板 (1)点击订阅消息 (2)点击公共模板库,然后找到想要选用的模板,点击选用. (3)在我的模板里面,复制模板id. 如果找不到想要用的模板,可 ...
- uniApp 微信小程序 授权 公众号推送信息
准本工作 1.首先小程序 更公众号关联起来 2.配置相应的域名(也就是你请求后端接口的公共地址) 3.需要写一个h5 页面 用于跳板 公众号 的授权 公众号如何关联小程序? 打开微信公众号后台,选择 ...
- 微信小程序通过服务号推送模板消息
前言 公司要做一款新的微信小程序,因为业务需求要加入消息推送.因为之前APP是通过服务号推送给用户消息的,所以微信小程序要做消息推送也是首先想到了通过服务号推送.事实上在使用过程中服务号推送还是非常好 ...
- 教你设置微信小程序的服务通知推送!搜狗文章
场景碎碎念:嗨喽,小伙伴闷,今天的学习到咯.通过咱们快一个月的学习,已经把平台的组件学习的差不多了,当然咱闷这个功能组件是在不停更新.不断完善的.今天咱们来学下"模板消息"推送功能 ...
- 微信小程序横版日历,tab栏
代码地址如下: http://www.demodashi.com/demo/14243.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...
- 微信小程序uni-app
文章目录 一.微信小程序uni-app 二.下载微信开发者工具 三.小程序开发 一.微信小程序uni-app 小程序是一种不需要下载.安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一 ...
最新文章
- mybatis的资源过滤错误及xml文件编码错误
- 【新周报(051)】Datawhale组队学习
- GDCM:从VR查找标签的测试程序
- JQUERY的location.href.split
- [2020多校A层12.3]虚构推理(语言/二分/数据结构)
- Windows Mobile Gprs连接与数据传输
- php养老院管理系统,XYCMS养老院建站系统 v3.8
- linux模拟dnf,每天学一个 Linux 命令:dnf
- WebPack 简明学习教程
- 保障电邮EMAIL通讯的安全性
- 使用网刻工具进行局域网内的网络同传及联想电脑同传
- ORBSLAM2 文章翻译
- matlab软件及基础实验第8单元,MATLAB软件与基础数学实验
- 英语口语练习软件测试简历,软件测试工程师个人简历英文版
- linux+开机启动sshd_Linux sshd服务自动启动
- 解决microsoft store需要联网 你似乎没有联网
- 威尔逊定理 及其拓展
- 对偶范数、霍尔德(Hölder)不等式、范数的共轭范数
- 农村信用社招聘计算机类进去干啥,2008年山东农村信用社招聘考试计算机类的范围有知道的吗?...
- round函数c语言,fegetround
热门文章
- [Lecture 8 ] Deep Learning Software(深度学习软件)
- HR人力资源管理精粹70则
- SSM+天山产业园访客与疫情防控系统 毕业设计-附源码191123
- 如何修改VMware虚拟机的配置文件.vmx
- 中兴笔试题目总结(一)C++部分
- THREE.OrbitControls参数控制解释
- AutomationAnywhere(AA)实现读取Excel文件
- 如何设置select-option的多项起始默认值
- CAP原理与传统的ACID
- 算法工程师的工程修养:Linux 服务器性能故障分析