j***@max-inf.com
j***@max-inf.com
  • 发布:2026-04-01 14:52
  • 更新:2026-04-01 14:54
  • 阅读:59

unipush2.0 鸿蒙客户端收不到消息

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

启动客户端;私有平台推送消息;

预期结果:

客户端收到消息

实际结果:

客户端收不到消息

bug描述:

云函数URL化,自己平台调用URL推送,之前都是正常的,现在客户端收不到消息了,从云函数日志看是成功的,从unipush后台推送消息能收到,这个是什么原因?

2026-04-01 14:52 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

未能获取明确的问题分类(uniapp,uni-app x,unicloud,HbuilderX)请明确说明问题采用的技术,补充相关的信息有助于更好的解决问题
欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

作为DCloud官方人员,对该bug反馈评审如下:

反馈内容完整性评估

严重缺失项:

  1. 代码示例完全缺失 - 未提供云函数URL化的调用代码,无法确认推送参数是否正确,特别是鸿蒙平台必须的categoryoptions配置
  2. 版本信息缺失 - 未提供HBuilderX版本、uni-push版本、鸿蒙系统版本(HarmonyOS NEXT还是旧版鸿蒙)、客户端基础库版本
  3. 配置信息缺失 - 未提供manifest.json中push模块配置截图,未说明是否已开通鸿蒙厂商通道(华为推送)

描述清晰度问题:

  • "之前都是正常的"时间范围不明确,无法判断是否因版本升级导致
  • "云函数日志看是成功的"未提供具体返回结果(是successed_online还是successed_offline
  • 未区分是离线收不到还是在线也收不到,这对鸿蒙推送排查至关重要

技术问题分析

根据知识库记录,该问题极大概率是鸿蒙厂商通道参数配置缺失导致:

  1. 鸿蒙推送特殊要求:鸿蒙平台(特别是HarmonyOS NEXT)与Android/iOS是完全独立的体系,必须单独配置华为推送厂商通道,且服务端推送时必须传入特定参数。

  2. 关键参数缺失:根据对话知识库中类似案例,鸿蒙离线推送必须在推送参数中正确设置categoryoptions,特别是:

    {  
     "category": {"harmony": "im"},  
     "options": {"hw": {"/message/android/category": "account"}}  
    }  

    本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码
    若未传入这些参数,鸿蒙端会视为普通消息,在应用关闭时无法通过厂商通道送达。

  3. 推送方式差异:uni-push后台推送能收到,说明客户端SDK和manifest配置基本正确;但云函数URL化调用收不到,说明私有平台调用时未携带鸿蒙厂商通道所需的特定参数,可能仅配置了Android的厂商通道参数。

需要用户补充的信息

请补充以下内容以便进一步定位:

  1. 云函数推送代码:提供调用云函数URL化时的完整请求体(JSON),特别是categoryoptions字段内容
  2. 厂商通道配置:确认是否在uni-push后台开通了"华为"厂商通道,并正确上传了华为推送证书
  3. 日志详情:提供云函数返回的完整结果(判断是successed_online还是successed_offline
  4. 环境信息:HBuilderX版本、uni-app版本(Vue2/Vue3)、鸿蒙设备系统版本

初步建议

根据uni-push2.0服务端API文档,请检查云函数URL化调用时是否包含:

  • 是否针对鸿蒙平台设置了category参数(如{"harmony": "im"}
  • 是否在options中配置了华为厂商通道参数
  • 确认推送目标push_clientid是否为鸿蒙设备正确获取的ID

注意:若未在华为开发者平台申请消息分类权限,即使传入category也可能被华为推送服务器拦截为"营销消息"导致无法推送,需确认华为推送控制台的消息分类配置状态。

建议先通过uni-push后台的"测试推送"功能,选择鸿蒙设备测试离线推送,确认基础通道畅通后,再对比云函数URL化的参数差异。

内容为 AI 生成,仅供参考

要回复问题请先登录注册