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

news/2024/9/27 23:57:34/

场景介绍

注意

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.ppmy.cn/news/1530890.html

相关文章

无人机之侦测技术篇

无人机的侦测技术是综合利用多种传感器来“发现”或“找到”无人机目标&#xff0c;并通过分析其物理属性&#xff08;如光学特性、热学特性、声学特性、磁学特性&#xff09;来进行识别和跟踪。 一、雷达探测 原理&#xff1a;雷达系统通过发射电磁波&#xff0c;利用无人机…

Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】

Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】 目录 Unity 设计模式 之 【什么是设计模式】/ 【为什么要使用设计模式】/ 【架构和设计模式的区别】 一、简单介绍 二、 Unity 设计模式 1、Unity 开发中使用设计模式的特点 2…

【matlab】读取.rec文件格式,脑电数据格式(Trodes)文件格式处理

代码解读 该代码旨在从 Trodes .rec 文件中读取电生理信号数据并对其进行处理。.rec 文件格式用于记录神经数据&#xff0c;而该代码通过指定通道从中提取数据&#xff0c;并按时间片段保存相关信息。 主要步骤 指定文件和通道&#xff1a; filename1 为输入文件路径。channe…

企业如何使用数据分析管理系统

在数字化时代&#xff0c;数据成为企业发展新的增长方向&#xff0c;如何利用数据分析管理系统高效管理和运用这些数据&#xff0c;已成为企业决策者们亟待解决的关键所在。数聚股份将通过多年的实践经验来深入探讨企业如何通过数据分析管理系统实现智能决策&#xff0c;增强竞…

CPU时钟周期与系统性能有何具体关系

1. CPU时钟周期的定义与作用 定义&#xff1a;CPU时钟周期&#xff0c;是CPU执行一个基本操作所需的时间单位&#xff0c;是CPU主频的倒数。主频越高&#xff0c;时钟周期越短&#xff0c;CPU处理速度越快。 作用&#xff1a;时钟周期是CPU执行指令的基础时间单元&#xff0c;…

刷题小记3----每日一题精进Java技能(详细思路解析✅)

文章目录 一、两种排序方法二、最小公倍数三、另类加法四、倒置字符串五、统计回文 一、两种排序方法 题目链接&#xff1a;两种排序方法 题目描述&#xff1a; 考拉有n个字符串字符串&#xff0c;任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法&#x…

计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI

首先安装需要的python库&#xff0c; 安装完之后利用navicat导入数据库文件bili100.sql到mysql中&#xff0c; 再在pycharm编译器中连接mysql数据库&#xff0c;并在设置文件中将密码修改成你的数据库密码。最后运行app.py&#xff0c;打开链接&#xff0c;即可运行。 B站爬虫数…

elastic search后端安装方法(服务端)

要在本地安装 Elasticsearch,你需要先安装 Java JDK。Elasticsearch 需要 Java 8 或更高版本。以下是详细的安装步骤: ### 1. 安装 Java JDK #### 1.1 下载 Java JDK 你可以从 Oracle 官网或 OpenJDK 官网下载 Java JDK。以下是下载 OpenJDK 的步骤: 1. 访问 [OpenJDK 官…