微信开放标签:wx-open-subscribe
必须要提交到服务器上测试,比较麻烦。否则就要搞个内网穿透才能搞,下面的代码可以直接复制拿去用。
<component :is="'wx-open-subscribe'"
id="subscribe-btn"
@success="handleSuccess"
@error="handleError"
:template="state.templateId"
style="width: 100%; display:block;"
>
// 省略中间的内容
</component>
主要来写handleSuccess
const handleSuccess = (e: any) => {
if (e.detail.errMsg === 'subscribe:ok') {
const status = JSON.parse(e.detail.subscribeDetails)
const tempStatus = JSON.parse(status[state.templateId]).status
if (tempStatus === 'accept') {
Toast.success('订阅成功')
} else if (tempStatus === 'reject') {
Toast('拒绝订阅消息,请检查公众号设置!')
} else if (tempStatus === 'cancel') {
Toast('取消订阅消息,请检查公众号设置!')
} else if (tempStatus === 'filter') {
Toast('标题同名被后台过滤!')
}
} else {
Toast.fail('订阅失败')
}
}
handleError
const handleError = (e: any) => {
const mapError = new Map([
['10001', '参数传空了'],
['10002', '网络问题,请求消息列表失败'],
['10003', '网络问题,订阅请求发送失败'],
['10004', '参数类型错误'],
['20001', '没有模板数据,一般是模板ID不存在或者和模板类型不对应导致的'],
['20002', '模板消息类型既有一次性的又有永久的'],
['20003', '模板消息数量超过上限'],
['20004', '用户关闭了主开关,无法进行订阅'],
['20005', '服务号被封禁']
])
Dialog.alert({
title: '订阅失败',
message: `错误码:${e.detail.errCode},提示:${mapError.get((e.detail.errCode).toString())}`,
confirmButtonColor: '#0081ff'
}).then()
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。