【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(5)

HarmonyOS SDK / 2025-02-21 / 原文

1.问题描述:

怎么判断EntryAbility是通过push拉起的?

解决方案:

{"_push_notifyid":12345,"debugApp":false,"isCallBySCB":false,"moduleName":"entry","ohos.aafwk.param.callerAbilityName":"PushServiceInnerAbility","ohos.aafwk.param.callerBundleName":"com.huawei.hms.pushservice","ohos.aafwk.param.callerPid":18049,"ohos.aafwk.param.callerToken":537833925,"ohos.aafwk.param.callerUid":20004,"ohos.dlp.params.sandbox":false,"send_to_erms_targetAppDistType":"none","send_to_erms_targetAppProvisionType":"debug","send_to_erms_targetBundleType":0}

里面的callerBundleName是com.huawei.hms.pushservice,只有推送消息才有。
 
Notification发送的结果是下面这样:

请使用want里面的callerBundleName==com.huawei.hms.pushservice来判断是否是push下发的消息。

2.问题描述:

现在的鸿蒙推送根据文档来看没有合适的设置data的地方,那么这种推送数据应该塞到哪里?

解决方案:

ClickAction支持传data数据。
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/push-scenariozed-api-request-param-V5#section1152516418157

3.问题描述:

通过华为推送过来的普通消息会在桌面应用图片上显示未读的数字,正常应该是点了顶部通知栏的消息之后,通知栏的这条通知消失,同时图标上的未读数字也要减1,但是目前没有方式可以获取到这个未读消息的数量,也就无法通过setBadgeNumber()去重新设置图标上的未读数字,这个该怎么处理?

解决方案:

使用相关接口 notificationManager.getActiveNotificationCount
https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-notificationmanager-0000001860296589#ZH-CN_TOPIC_0000001860296589__notificationmanagergetactivenotificationcount-1

4.问题描述:

鸿蒙push推送成功但是端上没展示,看系统日志应该到端上了,服务端也显示推送成功了。

解决方案:

被频控了,设置pushOptions的testMessage的参数为true,可发1000条信息,IM类不会被频控,具体可参考申请流程;链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-noti-classification-V5,通过之后可以使用。