代码自用自取,复制粘贴直接使用,喜欢的话可以查看博主其它文章,贡献一丢丢的浏览量,感激不尽。我们在进行微信小程序项目开发时,尤其商城类小程序,很需要订阅消息的辅助,订阅消息就是将模板内容实例化直接发送至指定手机微信上。
文章图片
比如我们在进行商城类小程序开发时,用户购买了商品,商家需要收到是谁买了商品,买了什么商城,什么时候买的,收货地址是哪里等等信息。
虽然这些可以去数据库查看,但是甚为不便,而且也不能实时接收。微信小程序目前不支持APP的推送类功能,这个订阅消息就是最接近推送的功能了。
首先第一步,我们去微信公众平台(https://mp.weixin.qq.com/),登录自己的账号,在左侧功能栏中找到订阅消息模块
文章图片
文章图片
我们点击添加,选择适合需求的模板。
然后回到编辑器中。
首先我们先编写云函数:
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {try {const result = await cloud.openapi.subscribeMessage.send({touser: event.openid,//要发送用户的openid
page: 'pages/demo/demo',//用户通过消息通知点击进入小程序的页面
lang: 'zh_CN',//进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
data: {
//要发送的数据,这里需要注意的事项,我在下面说
thing1:{value:event.title
},
time3:{value:event.time
}
},
templateId: '模板ID',//订阅消息模板ID
miniprogramState: 'formal'//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版})
return result
} catch (err) {return err
}
}
【前端|微信小程序云开发实现订阅消息推送】同学们直接套用上面这个模板即可。
然后要改一下package.json的内容:
文章图片
将框选的内容添加进去,然后上传并部署即可。
之后我们写page页的文件。
WXML中我们用按钮作为媒介。
JS的函数编写如下:
sendNew(res){var that = this
var time = util.formatTime(new Date());
wx.requestSubscribeMessage({tmplIds: ['模板ID'],
success(res){wx.cloud.callFunction({name:'subscribe',
data:{openid:'需要接收的微信的openid',
title:'二手物品',
time:time
},
success(res){console.log('成功',res);
},
fail(res){console.log('失败',res);
}
})
}
})
},
首先我们需要给用户一个提示框,让他授权之后,我们才能使用订阅消息的功能。这个 wx.requestSubscribeMessage就是弹出授权提示框的功能。模板ID在当时添加订阅消息模板那里有。
文章图片
这里面很关键的细节就是data的值,我们先在我的模板里,点击详情
文章图片
这里键值对要对应上,我的模板的key是thing1和time3,所以我云函数里的data是写的thing1和time3,key值是从page页的JS函数中传过来的,这个名字可以随意,但是不要写错,是event.xxx。还有一点是大部分人应该都知道怎么获取用户的openid,如果不知道,可以去我之前的博客看,有讲过(https://blog.csdn.net/m0_46171043/article/details/107452518)。
收到的效果如下:
文章图片
有什么问题可以联系QQ:505417246
关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、前端、uni-app、全栈、Nodejs、Python等实战学习资料
文章图片
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 接口|axios接口报错-参数类型错误解决
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export