当前位置: 首页 > article >正文

华为HarmonyOS灵活高效的消息推送服务(Push Kit) - 4 获取Push Token

场景介绍

注意

Push Kit在您获取Push Token时进行了推送服务权益校验,请您在进行开发前先阅读开通推送服务章节,完成相关配置。

Push Token标识了每台设备上每个应用,开发者调用getToken()接口向Push Kit服务端请求Token,获取到Token后,使用Push Token来推送消息。

Token一般情况不会变化,仅下列场景Token会发生变化:

  • 清除应用数据(例如卸载应用并重新安装、设备恢复出厂设置等)后重新打开应用。
  • 应用显式调用deleteToken()接口后重新调用getToken()接口。
  • 设备上应用的AAID变化后,下次申请Push Token时。

因此,建议您在应用启动时调用getToken()接口,若设备的Token发生变化,及时上报到您的应用服务器更新Token。

接口说明

接口返回值有两种返回形式:Callback和Promise回调。下表中仅展示Promise回调形式的接口,Promise和Callback只是返回值方式不一样,功能相同。

接口名

描述

getToken(): Promise<string>

以Promise形式获取推送服务的Token。

deleteToken(): Promise<void>

以Promise形式删除推送服务的Token。

获取Push Token

  1. 导入pushService模块。
    1. import { pushService } from '@kit.PushKit';

  2. 建议在您的UIAbility(例如EntryAbility)的onCreate()方法中调用getToken()接口获取Push Token并上报到您的服务端,方便您的服务端向终端推送消息。代码示例:
    1. import { pushService } from '@kit.PushKit';
      import { hilog } from '@kit.PerformanceAnalysisKit';
      import { BusinessError } from '@kit.BasicServicesKit';
      import { UIAbility, AbilityConstant, Want } from '@kit.AbilityKit';
      export default class EntryAbility extends UIAbility {
      // 入参 want 与 launchParam 并未使用,为初始化项目时自带参数
      async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): Promise<void> {
      // 获取Push Token
      try {
      const pushToken: string = await pushService.getToken();
      hilog.info(0x0000, 'testTag', 'Succeeded in getting push token');
      } catch (err) {
      let e: BusinessError = err as BusinessError;
      hilog.error(0x0000, 'testTag', 'Failed to get push token: %{public}d %{public}s', e.code, e.message);
      }
      // 上报Push Token并上报到您的服务端
      }
      }

注意

若您获取Push Token时发生APP身份验证失败错误(1000900010),请参考ArkTS API错误码排

删除Push Token

注意

删除Push Token后,本应用下的所有Push Kit历史数据会一并删除。非必要情况,请您不要主动调用deleteToken()接口。

  1. 导入pushService模块
    import { pushService } from '@kit.PushKit';

  2. 调用PushService.deleteToken()接口删除Push Token。代码示例:
    1. import { pushService } from '@kit.PushKit';
      import { hilog } from '@kit.PerformanceAnalysisKit';
      import { BusinessError } from '@kit.BasicServicesKit';
      import { UIAbility } from '@kit.AbilityKit';
      export default class EntryAbility extends UIAbility {
      async myDeletePushToken() {
      try {
      await pushService.deleteToken();
      hilog.info(0x0000, 'testTag', 'Succeeded in deleting push token');
      } catch (err) {
      let e: BusinessError = err as BusinessError;
      hilog.error(0x0000, 'testTag', 'Failed to delete push token: %{public}d %{public}s', e.code, e.message);
      }
      }
      }


http://www.kler.cn/a/320611.html

相关文章:

  • 删除k8s 或者docker运行失败的脚本
  • SpringBoot源码解析(四):解析应用参数args
  • 自动化运维(k8s):一键获取指定命名空间镜像包脚本
  • 【Linux学习】【Ubuntu入门】1-4 ubuntu终端操作与shell命令1
  • 矩阵的对角化特征值分解
  • 《Java核心技术 卷I》用户界面中首选项API
  • 科研绘图系列:R语言连线点图(linechart dotplot)
  • 浅析安科瑞Acrel-1000DP分布式光伏监控系统在某煤矿5MW分布式光伏项目中的应用-安科瑞 蒋静
  • [mongodb][配置]MongoDB中限制内存
  • Ceph官方文档_02_Ceph初学者指南
  • 功能测试详解
  • npm run serve报错提示js堆内存不足
  • elastic search后端安装方法(服务端)
  • DCGAN生成人脸图片
  • g1:基于 Llama,用提示工程实现类似 o1 的深度推理
  • SpringBoot 与 Maven 快速上手指南
  • 使用Fiddler Classic抓包工具批量下载音频资料
  • 从HarmonyOS Next导出手机照片
  • 使用python-pptx批量删除备注:清除PPT文档中的所有备注信息
  • 开源集成开发环境搭建之VSCode启动Jupyter Notebook
  • 科技赋能:智慧厕所,实现公共厕所精细化管理@卓振思众
  • SadTalker模型部署教程
  • OceanBase 3.X 高可用 (一)
  • Git - 初识版本库
  • ubuntu20.04安装cudnn
  • SpringBoot之登录校验关于JWT、Filter、interceptor、异常处理的使用