关于小程序消息订阅
注意:小程序消息订阅需要用户手动点击或者在支付回调中才能触发
- wx.requestSubscribeMessage (小程序消息订阅消息API)
wx.requestSubscribeMessage({
// 订阅消息模板id
tmplIds: ['gsX666KQ7V_7YJZe_mbpA8JgBSn2v0llvkZhHVwN2lM'],
success: (res) => {
// 获取当前这个模板id的状态
let tempIdVal = res[gsX666KQ7V_7YJZe_mbpA8JgBSn2v0llvkZhHVwN2lM]
if(tempIdVal == 'accept') {
console.log('订阅成功');
}
},
fail:(err)=> {
// 点击取消
console.log(err);
}
})
用户选择取消并勾选订阅消息的“总是保持以上选择,不再询问”时会不在弹出消息订阅弹窗,如何引导用户再次开启?
- 使用getSetting获取用户是否选择了关闭了消息订阅
- 弹出提示框引导用户点击确认时调起订阅消息弹窗
wx.getSetting({
withSubscriptions:true,
success:(res) => {
console.log(res);
// 订阅消息的模板id对象(只在用户勾选'总是保存以上选项,,不再询问'时返回)
let tempIdItem = res.subscriptionsSetting.itemSettings
// 当前订阅模板id的状态
let tempIdstatus = tempIdItem ? res.subscriptionsSetting.itemSettings.gsX666KQ7V_7YJZe_mbpA8JgBSn2v0llvkZhHVwN2lM : null
// 勾选总是拒绝时
if(tempIdstatus == 'reject') {
wx.showModal({
title:'提示',
content:'检测到您没有开启订单发货通知的消息订阅,是否去设置?',
success:(res) => {
if (res.confirm) {
console.log('用户点击确定')
// 可再次调用订阅消息api
} else if (res.cancel) {
console.log('用户点击取消')
}
},
fail:(err) => {
console.log(err);
}
})
}
},
fail:(err) => {
console.log(err);
}
})