看了官方文档的服务通知推送,必须要用户手动触发才能获取到fromId,而用户点击一次,只能获取到一个fromId,那么在这点击一次的情况下,怎么才能获取到多个fromId呢,当时这个问题困扰了我2个多小时,用获取到用户点击的fromId,fromId递增的方式,是能生成多个,但是微信无法识别,模拟用户点击方式也不可行,然后又试了css的点击穿透,也无法实现,后来突然想用一个笨办法,那就是在一个标签下面,嵌套多个
<view class='dfbg'> <form name='pushMsgFm' report-submit="true" data-type='submit' bindsubmit='formSubmit'> <button class='Gbtn flex f_center' class='btn' formType="submit"> <view class='aa'> <form name='pushMsgFm' report-submit="true" data-type='submit' bindsubmit='formSubmit'> <button class='Gbtn flex f_center' class='btn' formType="submit"> <view class='aa'> <form name='pushMsgFm' report-submit="true" data-type='submit' bindsubmit='formSubmit'> <button class='Gbtn flex f_center' class='btn' formType="submit"> </button> </form> </view> </button> </form> </view> </button> </form> </view>
我这里就写了3个,想生成几十条的,自行嵌套进去吧
嵌套的from和button的样式请用设置为opacity: 0
就这样就搞定了,有木有很简单的样子。
formSubmit:function(e){ let formId = e.detail.formId; console.log(formId); this.collectFormIds(formId); //保存推送码 //let t = e.detail.target.dataset.type; // 根据type执行点击事件 }, collectFormIds:function (formId) { let formIds = app.globalData.globalFormIds; // 获取全局推送码数组 if (!formIds) formIds = []; let data = { formId: formId, expire: new Date().getTime() + 60480000 // 7天后的过期时间戳 } formIds.push(data); app.globalData.globalFormIds = formIds; if (formIds.length==10){ this.takeInfo(); app.globalData.globalFormIds = []; } }
好了,就这么简单。
相关推荐:
微博及时推送消息如何实现
PHP版微信公共平台消息主动推送,突破订阅号一天只能发送一条信息
以上就是微信小程序如何实现发送多条服务消息(代码)的详细内容,更多请关注php中文网其它相关文章!
……