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版的推送消息相关推荐

  1. 小程序消息主动推送php,微信小程序有几种推送消息的方式

    微信小程序有5种推送消息的方式,分别为:1.小票机订单提醒,实现对商家的消息提醒:2.短信提醒:3.模板消息,各种动态可及时掌握:4.公众号订单提醒:5.消息主动推送,商家主动出击.推销自己的最好手段 ...

  2. uniapp如何使用微信小程序的订阅信息推送消息给用户?

    1.首先获取小程序用户登录openId // 获取openidasync opid() {let self = thiswx.login({success(res) {if (res.code) { ...

  3. 微信小程序向公众号推送消息超详细教程

    官方教程 官方教程 开通一下服务号公众号 超级管理员登录服务号公众号后台 登录地址 开通模板消息 申请一个模板消息,获取模板ID 注意此处的参数,后续接口需要使用 绑定公众号与小程序 官方教程 1.登 ...

  4. 微信小程序云开发定时推送订阅消息

    微信小程序云开发定时推送订阅消息 1.找到自己想要的模板 (1)点击订阅消息 (2)点击公共模板库,然后找到想要选用的模板,点击选用. (3)在我的模板里面,复制模板id. 如果找不到想要用的模板,可 ...

  5. uniApp 微信小程序 授权 公众号推送信息

    准本工作 1.首先小程序  更公众号关联起来 2.配置相应的域名(也就是你请求后端接口的公共地址) 3.需要写一个h5 页面 用于跳板 公众号 的授权 公众号如何关联小程序? 打开微信公众号后台,选择 ...

  6. 微信小程序通过服务号推送模板消息

    前言 公司要做一款新的微信小程序,因为业务需求要加入消息推送.因为之前APP是通过服务号推送给用户消息的,所以微信小程序要做消息推送也是首先想到了通过服务号推送.事实上在使用过程中服务号推送还是非常好 ...

  7. 教你设置微信小程序的服务通知推送!搜狗文章

    场景碎碎念:嗨喽,小伙伴闷,今天的学习到咯.通过咱们快一个月的学习,已经把平台的组件学习的差不多了,当然咱闷这个功能组件是在不停更新.不断完善的.今天咱们来学下"模板消息"推送功能 ...

  8. 微信小程序横版日历,tab栏

    代码地址如下: http://www.demodashi.com/demo/14243.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  9. 微信小程序uni-app

    文章目录 一.微信小程序uni-app 二.下载微信开发者工具 三.小程序开发 一.微信小程序uni-app 小程序是一种不需要下载.安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一 ...

最新文章

  1. mybatis的资源过滤错误及xml文件编码错误
  2. 【新周报(051)】Datawhale组队学习
  3. GDCM:从VR查找标签的测试程序
  4. JQUERY的location.href.split
  5. [2020多校A层12.3]虚构推理(语言/二分/数据结构)
  6. Windows Mobile Gprs连接与数据传输
  7. php养老院管理系统,XYCMS养老院建站系统 v3.8
  8. linux模拟dnf,每天学一个 Linux 命令:dnf
  9. WebPack 简明学习教程
  10. 保障电邮EMAIL通讯的安全性
  11. 使用网刻工具进行局域网内的网络同传及联想电脑同传
  12. ORBSLAM2 文章翻译
  13. matlab软件及基础实验第8单元,MATLAB软件与基础数学实验
  14. 英语口语练习软件测试简历,软件测试工程师个人简历英文版
  15. linux+开机启动sshd_Linux sshd服务自动启动
  16. 解决microsoft store需要联网 你似乎没有联网
  17. 威尔逊定理 及其拓展
  18. 对偶范数、霍尔德(Hölder)不等式、范数的共轭范数
  19. 农村信用社招聘计算机类进去干啥,2008年山东农村信用社招聘考试计算机类的范围有知道的吗?...
  20. round函数c语言,fegetround

热门文章

  1. [Lecture 8 ] Deep Learning Software(深度学习软件)
  2. HR人力资源管理精粹70则
  3. SSM+天山产业园访客与疫情防控系统 毕业设计-附源码191123
  4. 如何修改VMware虚拟机的配置文件.vmx
  5. 中兴笔试题目总结(一)C++部分
  6. THREE.OrbitControls参数控制解释
  7. AutomationAnywhere(AA)实现读取Excel文件
  8. 如何设置select-option的多项起始默认值
  9. CAP原理与传统的ACID
  10. 算法工程师的工程修养:Linux 服务器性能故障分析