微信小程序的消息推送简单的说就是发送一条微信通知给用户,用户点开消息可以查看消息内容,可以链接进入到小程序的指定页面。
微信小程序消息推送需要用户触发动作才能发送消息,比如用户提交订单、支付成功。一次只能发一条,当然可以通过某种方法发送多条,小的就不在这里赘述了。下面就介绍一下如何推送消息。
一、准备工作
首先,在微信公众平台开通消息推送功能,并添加消息模板。可以从模板库选择模板也可以创建一个模板,模板添加之后,模板身份我们接下来要用的。
发送模板消息需要用到accesstoken、formId和openID。访问令牌获取及更新可以看我的上一篇文章;formID就是消息模板身份证,开放身份证我们最好在获取用户信息或用户登录时储存到全局变量里。
二、获取formID
在需要触发消息推送的页面添加提交表单的事件。目的是得到formID,formID是消息推送时必须的参数。
表单名称=' pushMsgFm '报告-提交=' true '绑定提交=' getFormID '按钮表单-type=' submit ' class=' Zan-BTN Zan-BTN-大号Zan-BTN-危险支付按钮'立即支付/按钮/表单以上代码中" getFormID "是提交表单时触发的事件。
getFormID:函数{这个。setdata({ formid : e . detail。formid })}以上方法是获取formId。
三、配置消息模板参数,并传给后台
var config=require('./config。js ')var app=GetApp();函数pushMsg(formID,access _ token){ var openId=app。全球数据。用户信息。openIdvar messageDemo={ touser : openId,//openId template _ id : ' PjtLeqq-uef 49 r5jr 88 s27hbzbbdobijr 6 qfiwjwikpg ',//模板消息id,第:页'页面/索引/索引',//点击详情时跳转的主页form_id: formID,//formID data: {//下面的关键词*是设置的模板消息的关键词变量关键字1 ' : { ' value ' : '关键字1 ',' color': '#4a4a4a' },'关键字2 ' : { ' value ' : '关键字2 ',' color ' : ' # 9b ' },'关键字3 ' : { ' value ' : '关键字3 ',' color': 'red' },color 3:颜色强调_关键字: '关键字3。数据'//需要着重显示的关键词} wx。请求({ URL : config。服务。sendmasgur,data : { value : messageDemo,access_token: access_token},method: 'POST ',success : function(RES){ console。日志(“推送消息”);控制台。日志(RES);},fail:函数(错误){控制台。日志(“推送错误”)控制台。日志(err);} });}模块。导出={ pushMsg : pushMsg }四、推送消息
const request=require('./tools/ih _ request’);var conf=require('./config。js’)模块。导出=异步(CTX,下一个)={ var body=CTX。请求。尸体。值等待请求。postson({ URL : ' https://API。微信。QQ。com/CGI-bin/message/wxopen/template/send?access _ token=' CTX。请求。尸体。access _ token,body: body,success : function(RES){ CTX。body={ result : RES }控制台。log(' RES=',RES);},错误:函数{ CTX。body={ result : err }控制台。日志(err);}});}ih_request.js
const request=require(' request ');var ih _ request={ };module . exports=ih _ requestih _ request。Postjson=异步函数(选项){ var res=等待请求({ URL :选项。URL,method: 'post ',标头RS : { '内容类型' : ' application/JSON ' },正文: JSON。stringify(选项。身体)},功能(err,RES,body) { res?选项。成功(正文):选项。错误(RES . msg);console.log('MSGresult=',body);});}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。