在上篇文章中,我讲到了订阅消息的发送。但随着业务的跟进,现在的需求是要群发订阅消息。
这?不难!
首先,你要搞懂一点,群发订阅消息就是将需要发送的用户openID集合起来,然后一一使用推送模板发送消息。这个时候你可能会想到循环。但是用循环实在是太多坑。
解决这个问题,要么在云函数端写逻辑,多次发送;要么在小程序端写逻辑多次调用云函数。这两种方法都是可以的。
我采用了第二种,在小程序端多次调用云函数。
看主要代码吧:
第一步,我先获取数据库用户的openid,接着通过Promise.all来处理调用云函数。res.data是获取到的数据库信息,是一个数组。想要获取里面的openID,直接通过item.openid即可。
db.collection('admin').get({
success:res=>{
Promise.all(res.data.map(item=>{
wx.cloud.callFunction({
//循环调用云函数
name:"report",
data:{
nickName:userInfo.nickName,
_id:this.data._id,
reportText:this.data.items[this.data.num].name,
reportTime:HS,
openid:item.openid
},
success:res=>{
console.log(res)
}
})
}))
}
})
订阅消息的代码在上篇文章:微信小程序云开发之订阅消息的推送