【HarmonyOS】应用推送使用个推SDK如何实现?

【HarmonyOS】应用推送使用个推SDK如何实现?

前言

个推和极光都是市面上很成熟的推送第三方SDK了。今天讲讲个推SDK在鸿蒙中如何集成使用。

存在即合理,三方SDK推送给我们带来了极大的好处,首先在服务器后台处理一套API就可搞定,差异化处理都由SDK厂商来做了。客户端层面,SDK会更进一步进行封装,并且加强功能的能力。整个功能又节约了人力维护和开发成本。

当然也有缺点,毕竟差异化都是厂商处理了,所以在平台进行API更新时,都需要等厂商先升级完毕才能进行下一步,有了前置依赖。

平台注册和配置事项

一般鸿蒙应用选择个推很大的前提是,既有的IOS和Android已经使用了个推,在迁移一致性上来说,也会选择个推来实现鸿蒙上的应用推送功能。

一般公司运营会负责个推平台账号。这里注册是为给给应用开发来做测试账号用。

个推平台 整个注册过程很简单,傻瓜操作即可。

注册完成后登陆个推平台,进行测试应用的注册。一般平台都需要以你的应用作为服务对象,会生成对应该的APPID或者APPKey ,到时候使用他们的SDK,初始化时就需要将你的应用唯一标识传给他们,联网之后他们的后台会进行校验。这也是一个注意项,在使用三方SDK时,若没有和自己家的后台服务器直接交互,很多情况下是需要连接外部网络,因为客户端的三方SDK会进行联网校验 。所以很多公司是内网,测试机使用SDK功能就会有问题



关于华为AGC平台推送服务的配置,参见这篇文章:
【HarmonyOS】关于鸿蒙消息推送的心得体会 (一)

关于个推平台和华为AGC平台进行绑定的操作:

在个推开发者中心--应用管理页--找到对应的这个鸿蒙应用--进入"消息推送"页--配置管理--应用配置--鸿蒙:去填写鸿蒙应用的厂商信息,点击上传文件,选择您在创建服务器秘钥文件中下载的JSON文件上传:

如果不知道JSON文件如何获取,详细步骤参见文档:开通指南 查看其中的创建服务帐号密钥文件的内容。

SDK获取Demo运行

应用注册完之后,就可以进行推送SDK的下载了。这里会有客户端SDK和服务器SDK。

下载完成之后,我们可以看到SDK是以Demo的形式提供。SDK的Har肯定就在项目的libs里了。这里我们也发现了个彩蛋,MACOSX,这一看就是Mac电脑上传的包哈哈哈。
打开应用后我们可以看到,整个demo很简单。sdk本体就是libs下的GT-HM-1.0.2.0-beta.har。

**在入口Ability的创建函数中,进行了SDK的初始化操作。**这里的APPID就是我们在个推平台上注册应用,对应的id。

dart 复制代码
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import hilog from '@ohos.hilog';
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import window from '@ohos.window';
import common from '@ohos.app.ability.common';

import PushManager from 'library';

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    hilog.info(0x0000, 'EntryAbility', '%{public}s', 'Ability onCreate');
    PushManager.initialize({
      appId: 'APPID',
      context: getContext(this) as common.UIAbilityContext,
      onSuccess: cid => {
        hilog.debug(0x0000, "EntryAbility", '%{public}s', "cid = " + cid);
      },
      onFailed: error => {
        hilog.debug(0x0000, "EntryAbility", '%{public}s', "error = " + error);
      }
    })
  }
  
  onWindowStageCreate(windowStage: window.WindowStage): void {

    windowStage.loadContent('pages/Index', (err, data) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

}

因为个推是在华为推送官网API基础之上做的封装,所以官网对于推送进行验证id我们也需要进行配置。这个id在华为AGC平台上可以找到。如何获取id和填写id到工程里,参见这篇文章:**
【HarmonyOS】关于鸿蒙消息推送的心得体会 (一)

前两步完成之后,使用对应的华为AGC平台上你的测试应用签名文件进行编译,启动后手机上显示的完整的测试页,通过按钮触发不同的SDK API,注意测试之前要先开启通知开关。代码参见demo中的index.ets


注意一定要连接外网进行测试!
注意一定要连接外网进行测试!
注意一定要连接外网进行测试!

最后一步创建推送通知进行测试验证

CID是个推SDK在初始化时生成,有日志答应可以获取到。

其实推送功能就算使用华为官网原生API来实现,工作量也不是很大。但是服务器后台的工作量还是很巨大。以上是个推SDK在客户端集成的操作。关于服务器API的操作参见官网文档:RestAPI V2

以上都完成后,想必你已经对集成个推SDK实现推送功能,信心百倍咯,快去自己试试吧。

相关推荐
kirk_wang1 天前
Flutter video_thumbnail 库在鸿蒙(OHOS)平台的适配实践
flutter·移动开发·跨平台·arkts·鸿蒙
Monkey_241 天前
鸿蒙开发工具大全
华为·harmonyos
灰灰勇闯IT1 天前
鸿蒙 5.0 开发入门第二篇:掌握 ArkTS 的 if 分支语句,实现条件逻辑判断
华为·harmonyos
2501_925317131 天前
[鸿蒙2025领航者闯关] 把小智AI装进「第二大脑」:从开箱到MCP智能体的全链路实战
人工智能·microsoft·harmonyos·鸿蒙2025领航者闯关·小智ai智能音箱·mcp开发
SmartBrain1 天前
华为企业4A架构深度解析
华为·架构
柒儿吖1 天前
让终端输出更美观:term_grid网格布局工具在OpenHarmony PC上的完整适配实战
harmonyos
柒儿吖1 天前
深度实战:Rust交叉编译适配OpenHarmony PC——terminal_size完整适配案例
后端·rust·harmonyos
JohnnyDeng941 天前
ArkTs-线程池工具封装
线程池·arkts·鸿蒙
hh.h.1 天前
Flutter应用嵌入鸿蒙智慧座舱数字孪生界面的实现
华为·harmonyos
白茶三许1 天前
【江鸟中原】集光鸿蒙项目开发
pytorch·深度学习·harmonyos