在上篇文章中,我講到了訂閱消息的發送。但隨着業務的跟進,現在的需求是要羣發訂閱消息。
這?不難!
首先,你要搞懂一點,羣發訂閱消息就是將需要發送的用戶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)
}
})
}))
}
})
訂閱消息的代碼在上篇文章:微信小程序雲開發之訂閱消息的推送