Skip to content

订阅消息相关

为了增强微信小程序中订阅消息的使用便捷性和灵活性,我们进行了功能封装。这一封装旨在简化订阅消息的调用过程,并提供即时的订阅结果反馈。此外,它允许开发者根据具体场景选择是否将订阅作为执行后续动作的必要条件。

requestSubscribeMessage

调用订阅消息,无论用户是否授权订阅都进入 .then(),常用于一般情况

用户在「设置」中关闭「通知管理->接收通知」不抛出错误,此时返回值为 null

订阅一次性模板

js
const subscribed = await requestSubscribeMessage({
  tmplIds: [SUBSCRIPTION_TEMPLATE_ID.EXCHANGE_REVIEW_RESULT],
})

订阅永久模板

js
const subscribed = await requestSubscribeMessage({
  tmplIds: [SUBSCRIPTION_TEMPLATE_ID.EXCHANGE_REVIEW_RESULT],
  subscriptionType: 'permanent',
})

ensureAgreeSubscribeMessage

调用订阅消息增强版。当有 targetTmplIds 的订阅结果为 reject 时,有重新订阅的弹窗提示,并返回 null

用户在「设置」中关闭「通知管理->接收通知」不抛出错误,此时返回值为 null

该方法不常用。通常用在「订阅提醒」并且在成功后需要写订阅提醒记录的情况

js
try {
  const subscribed = await ensureAgreeSubscribeMessage({
    tmplIds: [SUBSCRIPTION_TEMPLATE_ID.EXCHANGE_REVIEW_RESULT],
  })

  // do something
} catch (err) {
  message.showToast('请先订阅')
}

suggestAgreeSubscribeMessage

调用订阅消息增强版。当有 targetTmplIds 的订阅结果为 reject 时,有重新订阅的弹窗提示,并返回成功订阅部分的 tmplIds

用户在「设置」中关闭「通知管理->接收通知」不抛出错误,此时返回值为 null

该方法最不常用。通常用想要有重新订阅的弹窗提示但并不强制订阅的场景

js
const subscribed = await suggestAgreeSubscribeMessage({
  tmplIds: [SUBSCRIPTION_TEMPLATE_ID.EXCHANGE_REVIEW_RESULT],
})

TIP

以上方法均支持订阅一次性和永久模板,但不支持两者同时订阅。

相关文档