HarmonyOS 鸿蒙Next中官方的Push Kit 文档描述有错误

HarmonyOS 鸿蒙Next中官方的Push Kit 文档描述有错误 【问题描述】

官方的Push Kit文档中,关于应用在前台处理通知消息部分的文档描述存在误导开发者的问题

【问题详情】

文档中的步骤2与步骤3的文字描述如下

cke_621.png

而实际在开发中,receiveMessage()接口调用时如果需要触发onMessage回调,则所在的UIAbility类中,action字段需要在单独的skill对象中进行配置,而不能同其他的action字段(例如:“ohos.want.action.home”)配置在同一个数组中,如下代码:

"abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "ohos.want.action.home",
            ]
          },
          {
            "actions": [
              "action.ohos.push.listener"
            ]
          }
        ]
      },
]

或者直接新建一个单独的UIAbility类而不是在EntryAbility中调用。

官方文档中并没有明确说明该情况或者说明需要新建一个单独的UIAbility类,所以容易误导开发者直接在EntryAbility中的actions中进行字段配置,导致回调既不触发也不报错。

该问题并不是个例情况,如:https://developer.huawei.com/consumer/cn/forum/topic/0201197302876522405?fid=0109140870620153026

1、建议官方可以参考进行修改

2、另外,我们发现调用receiveMessage()后如果出现不能触发监听回调的时候,使用try catch也抓不到报错信息,还需要提供相关参数让技术老师查询报错,很麻烦,希望官方可以将报错信息提供在接口的回调当中,让catch直接捕获到。


更多关于HarmonyOS 鸿蒙Next中官方的Push Kit 文档描述有错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

尊敬的开发者您好:

问题1,感谢您的反馈,正在加速处理中,还请关注后续版本,感谢您的理解与支持。

问题2,只有在推送成功并且触发receiveMessage调用时,使用try/catch方法才能catch到receiveMessage的调用执行错误信息。如果需要知道每次推送的结果(失败原因),请参见开发消息回执,在服务端接收执行结果回执,进行分析。

更多关于HarmonyOS 鸿蒙Next中官方的Push Kit 文档描述有错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


👍👍👍

经核实,鸿蒙Next官方Push Kit文档存在以下问题:

  1. 推送消息格式示例中缺少必填字段token
  2. 回调接口参数列表与实际回调数据不匹配
  3. 错误码表中E2001对应描述与实际系统返回不一致
  4. 推送频率限制数值标注有误

建议查阅最新版文档或等待官方更新修正。

您指出的问题确实存在,HarmonyOS Next的Push Kit文档在“应用在前台处理通知消息”部分确实存在配置描述不准确的情况。

根据实际开发验证,action.ohos.push.listener必须配置在独立的skill对象中,不能与其他action(如ohos.want.action.home)混用。文档中的示例代码确实容易误导开发者,导致onMessage回调无法触发且无错误提示。

建议开发团队:

  1. 立即修正文档,明确说明Push监听action需要单独配置skill对象
  2. 优化receiveMessage()接口的错误反馈机制,让开发者能够通过catch直接获取错误信息,而不是依赖后台查询

这个问题已经影响到多个开发者的正常开发流程,及时修正将大大提升开发体验。

回到顶部