uniapp push2 荣耀 离线推送不送达是什么原因?

我在使用uniapp push2进行荣耀手机离线推送时,消息无法正常送达。已经按照文档配置了厂商通道,在线推送正常,但离线状态下收不到消息。请问可能是什么原因导致的?需要检查哪些配置或权限?

2 回复

荣耀离线推送不送达可能原因:

  1. 未集成荣耀Push SDK
    需在HBuilderX配置荣耀厂商通道,并在荣耀开发者平台正确配置应用签名和包名。

  2. 证书指纹未配置
    荣耀平台要求上传SHA256证书指纹,与本地签名文件必须一致。

  3. 测试环境限制
    荣耀推送对测试设备有数量限制(通常50台),超限会导致推送失败。

  4. 设备未联网/休眠
    设备长时间离线或开启省电模式可能影响消息缓存机制。

  5. 推送频率限制
    荣耀对非重要消息有频控策略,低优先级消息可能被延迟或丢弃。

  6. 参数配置错误
    消息体中字段格式错误或缺少必要参数(如MessageType)。

建议按以下步骤排查:

  • 检查荣耀开发者平台配置状态
  • 使用官方推送测试工具验证证书
  • 确认设备EMUI版本≥10.0
  • 通过getProvider接口检查通道注册状态

在 UniApp 中使用 Push2(如个推、UniPush 等)集成荣耀设备离线推送时,推送不送达可能由以下原因导致。请逐步排查:

1. 荣耀推送服务未正确配置

  • 原因:未在荣耀开发者平台申请推送服务、配置应用签名或未正确集成 HMS Core。
  • 解决方案
    • 荣耀开发者平台注册应用,启用推送服务,获取 AppIdAppSecret
    • 确保应用签名(SHA256)与平台配置一致。
    • 在 UniApp 项目中正确配置荣耀推送参数(如 manifest.json 中填写荣耀推送的 AppId)。

2. 设备或系统限制

  • 原因:用户未开启通知权限、设备未登录荣耀账号、或系统省电策略限制。
  • 解决方案
    • 引导用户开启应用通知权限(设置-通知-应用权限)。
    • 确保设备登录荣耀账号(推送依赖账号体系)。
    • 关闭省电模式或允许应用后台运行。

3. Token 获取或上传失败

  • 原因:应用未成功获取荣耀推送 Token,或未将 Token 上传至开发者服务器。
  • 解决方案
    • 在 UniApp 中监听 push 事件,确认 Token 获取成功:
      uni.onPushMessage({
        success: (res) => {
          console.log("推送Token:", res.token);
        },
        fail: (err) => {
          console.error("获取Token失败:", err);
        }
      });
      
    • 将 Token 发送至服务端存储,用于后续推送。

4. 服务端推送参数错误

  • 原因:服务端调用荣耀推送 API 时,参数(如 Token、AppId、证书)错误或格式不符。
  • 解决方案
    • 检查服务端推送请求是否使用正确的 Token 和认证信息。
    • 参考荣耀推送文档,确保 payload 格式正确(例如通知标题、内容必填)。

5. 网络或服务端问题

  • 原因:设备网络不稳定,或服务端未成功调用荣耀推送接口。
  • 解决方案
    • 通过荣耀平台提供的推送测试工具验证接口可用性。
    • 检查服务端日志,确认推送请求是否返回成功(HTTP 状态码 200)。

6. UniApp 插件或 SDK 版本过旧

  • 原因:使用的 UniApp 原生插件或 HMS Core SDK 版本不兼容。
  • 解决方案
    • 更新 UniApp 项目到最新版本,确保使用支持荣耀推送的插件。
    • 在原生工程中集成最新版 HMS Core SDK(如通过官方插件配置)。

7. 厂商通道限制

  • 原因:荣耀推送对每日推送量、频率或内容有限制(如敏感词触发过滤)。
  • 解决方案
    • 避免高频推送,检查推送内容是否符合平台规范。

总结步骤:

  1. 检查配置:确认荣耀平台与应用本地配置一致。
  2. 验证权限:确保设备通知权限和账号正常。
  3. 调试 Token:通过日志输出 Token 并检查服务端上传。
  4. 服务端排查:验证推送 API 调用参数及响应。
  5. 更新环境:升级 SDK 或 UniApp 插件。

若问题持续,查看 UniApp 控制台或荣耀平台推送记录,获取详细错误码进一步分析。

回到顶部