一、小程序消息推送怎么关闭
小程序消息推送是小程序的一个重要功能,但在某些情况下,用户可能需要关闭消息推送。小程序提供了简单的设置,用户可以在小程序内部关闭消息推送。
在小程序入口页面,点击右上角的设置按钮,然后选择“消息通知”,即可进入消息推送设置页面。在该页面上,用户可以对小程序的消息推送进行关闭或开启。
二、小程序实现公众号消息推送
小程序与公众号有很多相似的功能,其中就包括消息推送。小程序可以实现向公众号用户推送消息的功能。
实现公众号消息推送的前提是,要进行小程序与公众号的绑定。在小程序的开发者工具中,选择“设置”->“第三方设置”,输入公众号的appId和appSecret,即可完成绑定。
在小程序中,我们可以通过以下方式实现公众号消息推送:
wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + access_token, method: 'POST', data: { touser: 'OPENID', template_id: 'TEMPLATE_ID', page: 'index', form_id: 'FORMID', data: { keyword1: { value: '恭喜你购买成功!', color: '#173177' }, keyword2: { value: '巧克力', color: '#173177' }, keyword3: { value: '39.8元', color: '#173177' }, keyword4: { value: '2014年9月22日', color: '#173177' } }, emphasis_keyword: 'keyword1.DATA' }, success: function (res) { console.log("success"); }, fail: function (err) { console.log("fail"); } })
三、小程序消息推送规则
1. 消息类型
小程序可以向用户推送两种类型的消息:模板消息和客服消息。模板消息可以在用户不在线时推送,客服消息需要用户在线才能推送。
2. 推送限制
小程序消息推送需要满足一定的限制条件,包括:
- 一个用户每天最多收到4条模板消息和24条客服消息。
- 一个模板消息和客服消息都需要在7天内被推送,否则会过期而无法被推送。
- 不同类型的消息会影响用户的接受率。对于一些被认为比较骚扰的消息(例如推销信息),用户自然的策略是主动忽略或者屏蔽消息。
3. 模板消息
模板消息可以使用预设的模板、关键字和内容进行快速制作。小程序右侧菜单中有一个“模板消息”选项,可用于管理模板消息。
以下是一个模板消息制作实例:
{ "touser": "OPENID", "template_id": "TEMPLATE_ID", "page": "index", "form_id": "FORMID", "data": { "keyword1": { "value": "小程序模板消息", "color": "#173177" }, "keyword2": { "value": "2019年9月5日 14:00", "color": "#173177" }, "keyword3": { "value": "官方文档", "color": "#173177" } }, "emphasis_keyword": "keyword1.DATA" }
四、小程序通知栏消息推送
如果用户设置允许,小程序可以向用户推送通知栏消息,以便用户随时了解小程序的最新内容。
以下是一个向用户推送通知栏消息的实例:
wx.showModal({ title: '提示', content: '确定要推送通知栏消息吗?', success: function (res) { if (res.confirm) { wx.requestSubscribeMessage({ tmplIds: ['TEMPLATE_ID_1', 'TEMPLATE_ID_2', 'TEMPLATE_ID_3'], success(res) { console.log(res) }, fail(err) { console.log(err) } }) } else if (res.cancel) { console.log('用户点击取消') } } })
五、小程序能推送消息吗
小程序可以向用户发送消息,但需要满足一定的规则和限制条件。在实际操作中,我们需要合理的运用小程序消息推送功能,以避免在用户中造成过多的骚扰,同时也可以提高用户对小程序的认知度和使用度。
代码示例:
在页面中添加以下button按钮:
在js文件中添加以下代码:
Page({ data: { appId: 'wx80deeb600aa00000', appSecret: 'fea4e73519d828926f93c9276d000000', openId: '', formId: '', templateId: 'yRKwoFdQj0tJQwLXIUa8GNnqcc-Vd7b4tjIOdp_WLxk', lang: 'zh_CN', templateData: { keyword1: { value: '小程序模板消息', color: '#173177' }, keyword2: { value: '2019年9月5日 14:00', color: '#173177' }, keyword3: { value: '官方文档', color: '#173177' } }, subscribeData: { thing1: { value: '小程序订阅消息', }, time2: { value: '2019年9月8日 14:00', } } }, onLoad: function (options) { // 获取用户授权 wx.login({ success: res => { wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + this.data.appId + '&secret=' + this.data.appSecret + '&js_code=' + res.code + '&grant_type=authorization_code', success: res => { this.setData({ openId: res.data.openid }) } }) } }) }, sendTemplateMessage: function () { // 发送模板消息 wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + this.data.appId + '&secret=' + this.data.appSecret, success: res => { wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + res.data.access_token, method: 'POST', data: { touser: this.data.openId, template_id: this.data.templateId, form_id: this.data.formId, data: this.data.templateData, emphasis_keyword: 'keyword1.DATA' }, success: res => { console.log(res) } }) } }) }, sendSubscribeMessage: function () { // 发送订阅消息 wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + this.data.appId + '&secret=' + this.data.appSecret, success: res => { wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + res.data.access_token, method: 'POST', data: { touser: this.data.openId, template_id: '6udZURdLRwpdpUySYIgFNzRrV2tRzZQ9fGTjhNlV1V0', lang: this.data.lang, data: this.data.subscribeData }, success: res => { console.log(res) } }) } }) }, sendNotificationMessage: function () { // 发送通知栏消息 wx.showModal({ title: '提示', content: '确定要发送通知栏消息吗?', success: res => { if (res.confirm) { wx.requestSubscribeMessage({ tmplIds: ['8cE1mjvOB4StFUljvB1Njz-1mcubdip0eiC9k2ivQwg'], success: res => { console.log(res) } }) } else if (res.cancel) { console.log('用户点击取消') } } }) } })