向用户推送信息

开发者可以通过推送服务,向用户推送信息。

开发准备

使用消息服务之前需要先开启推送服务,请参考元服务推送-开发准备。

推送服务通知

[h2]发起基于账号的订阅请求

  1. 开始开发前,请先确保已完成元服务推送-开发准备中的配置,同时开通服务通知并选用订阅模板。

  2. 元服务调用 has.requestSubscribeMessage 方法发起消息订阅。

    has.requestSubscribeMessage({
      tmplIds: ['xxx'],
      success: (res) => {
        console.info('requestSubscribeMessage success', res);
      },
      fail: (err) => {
        console.error('requestSubscribeMessage fail', err);
      },
      complete: (res) => {
        console.info('requestSubscribeMessage complete', res);
      }
    });

[h2]推送基于账号的订阅消息

当用户同意订阅,元服务可基于账号推送消息,请参考:推送基于账号的订阅消息。

推送服务动态

服务动态消息是提供给开发者的B2C(Business-to-Customer)消息能力,通过服务动态消息开发者可以向用户推送关键节点的动态消息,及时提醒用户订单进度。

开发者可通过以下任一方式获取用于推送服务动态的唯一标识code:

具体开发步骤与ArkTS元服务中推送基于账号的服务动态消息基本一致。

[h2]通过前端button获取code

从基础库1.0.20起开始支持,使用前需先参考申请权益申请元服务服务动态消息权益。

开发者需要在前端将触发服务的button组件的open-type的值设置为liveActivity,并设置activity-type的值为对应的子场景ID(具体取值请参考服务动态场景模板)。当用户点击按钮后,若成功获取服务动态授权码,将通过bindcreateliveactivity回调返回code;若失败,错误信息将通过binderror回调返回。

该code在本次服务进程中唯一,后续开发者更新用户的服务状态均通过此code进行。

平台会对相关button组件进行规范性使用的检测,包括是否存在诱导用户点击、通过与卡片无关的按钮获取code等行为,请合理使用组件。

示例代码

<!--hxml文件-->
<button open-type="liveActivity" activity-type="100050001" bindcreateliveactivity="onLiveActivityCreate">获取服务动态授权码</button>
// js文件
Page({
  onLiveActivityCreate(evt) {
    console.info(`Obtained service authorization code successfully: code=${evt.detail.code}`);
  }
});