之前的模板消息推送,將在2020年1月10日下線,所以我們不得不使用訂閱消息了。
我們先來看下訂閱消息的官方簡介。
接下來我們就來借助云開發,來快速實現小程序消息推送的功能。
這一步和我們之前的模板消息推送是一樣的,也是先添加模板,然后拿到模板id
首先是開通訂閱消息功能,很簡單,如下圖
由于長期性訂閱消息,目前僅向政務民生、醫療、交通、金融、教育等線下公共服務開放,后期將逐步支持到其他線下公共服務業務。僅就線下公共服務這一點,長期性訂閱消息就和大部分開發者無緣了。
所以我們這里只能以使用一次性訂閱消息為例。
如上圖,我們從公共模板庫里選擇一個一次性訂閱的模板。然后編輯模板如下圖
下圖就是我們添加好的模板,下圖的模板id就是我們需要的。
我們做訂閱消息授權時,只能是用戶點擊或者支付完成后才可以調起來授權彈窗,官方是這么要求的:
我們這里用到了wx.requestSubscribeMessage這個方法,來獲取用戶的授權。
先來看官方爸爸是怎么說的。
可以看出官方提供了兩種方式,我們這里使用云調用。說白了就是在云函數里調用推送功能。
我們只需要創建一個云函數如下,然后填入用戶的openid,要跳轉的小程序頁面鏈接,模板內容,模板id即可。通常這些數據都應該傳進來,簡單起見,我就把這里的模板內容寫成固定的。
可以看到,我們成功的收到 上課提醒的模板消息,點擊進去,就是我們具體的推送內容
其實我這是連續收到了4條消息,因為我點擊了4次允許推送,所以就可以成功的推送4次。
<button bindtap="shouquan" type='primary'>獲取訂閱消息授權</button>
<button bindtap="getOpenid">獲取用戶的openid并推送消息</button>
//編程小石頭wechat:2501902696
Page({
//獲取授權的點擊事件
shouquan() {
wx.requestSubscribeMessage({
tmplIds: ['CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU'], //這里填入我們生成的模板id
success(res) {
console.log('授權成功', res)
},
fail(res) {
console.log('授權失敗', res)
}
})
},
//獲取用戶的openid
getOpenid() {
wx.cloud.callFunction({
name: "getopenid"
}).then(res => {
let openid = res.result.openid
console.log("獲取openid成功", openid)
this.send(openid)
}).catch(res => {
console.log("獲取openid失敗", res)
})
},
//發送模板消息到指定用戶,推送之前要先獲取用戶的openid
send(openid) {
wx.cloud.callFunction({
name: "sendMsg",
data: {
openid: openid
}
}).then(res => {
console.log("推送消息成功", res)
}).catch(res => {
console.log("推送消息失敗", res)
})
}
})
//編程小石頭wechat:2501902696
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async(event, context) => {
try {
const result = await cloud.openapi.subscribeMessage.send({
touser: event.openid, //要推送給那個用戶
page: 'pages/index/index', //要跳轉到那個小程序頁面
data: {//推送的內容
thing1: {
value: '小程序入門課程'
},
thing6: {
value: '杭州浙江大學'
},
thing7: {
value: '第一章第一節'
}
},
templateId: 'CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU' //模板id
})
console.log(result)
return result
} catch (err) {
console.log(err)
return err
}
}
后面我會分享更多小程序相關的知識出來,請持續關注。
視頻講解:https://edu.51cto.com/course/19575.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。