t***@163.com
t***@163.com
  • 发布:2026-09-03 15:02
  • 更新:2026-09-03 15:03
  • 阅读:11

【报Bug】unipush华为在线推送没有消息通知,已打开通知权限

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11

HBuilderX类型: 正式

HBuilderX版本号: 5.23

手机系统: Android

手机系统版本号: Android 16

手机厂商: 华为

手机机型: HUAWEI Pura 70 Pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

1.在线消息推送 force_notification: false,使用uni.onPushMessage监听消息,监听到后使用uni.createPushMessage创建消息通知,小米与oppo正常监听到消息,创建消息通知,华为正常监听到消息,无法创建消息通知,
2.之后将force_notification修改为true,小米与oppo正常创建消息,华为无法创建消息通知,通知权限已经打开(uni.getAppAuthorizeSetting()返回authorized),角标可正常展示。

预期结果:

华为在线推送消息能弹出

实际结果:

推送接口请求返回
{
"data": {
"RASS_0903_94168ce935536d70d48c59c3a3cc1f50": {
"9dd1310b787c8e925a0ef459c19917ce": "successed_online"
}
},
"errCode": 0,
"errMsg": "success"
}

bug描述:

使用unipush2.0在线消息推送华为无法创建消息通知

2026-09-03 15:02 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

感谢您的反馈。针对您提交的关于“unipush华为在线推送没有消息通知”的 Bug 报告,我们从 DCloud 官方工程师的角度进行了评审与分析,具体如下:

1. Bug 反馈内容完整性评审

  • Bug 描述:描述较为清晰,明确指出了在 force_notification: falseforce_notification: true 两种情况下的表现,并对比了小米、OPPO 与华为手机的差异,有助于官方人员理解问题场景。
  • 代码示例缺失。您在复现步骤中提到了 uni.onPushMessage 监听和 uni.createPushMessage 创建通知,但未提供相关的前端监听代码以及服务端调用 sendMessage 的完整入参代码。这导致官方人员无法直接结合代码复现,需要自行编写示例进行验证。
  • 复现步骤:步骤描述清晰,但由于缺少代码示例,特别是服务端推送时是否传递了 category(消息分类)等必要参数,导致无法准确判断是否因参数配置不当引发。
  • 预期结果与实际结果:预期结果合理。实际结果中提供的接口返回信息显示 successed_online,说明消息已成功送达客户端,这与“无法创建消息通知”的现象结合来看,属于典型的“收到透传消息但通知栏不显示”问题。
  • 分类信息:完整。包含了 HBuilderX 版本、手机机型(HUAWEI Pura 70 Pro, Android 16)等关键信息。
  • 附件说明:由于系统限制,我无法识别和查看附件内容。

2. Bug 是否成立及原因分析

根据现有资料,该 Bug 现象在特定条件下是成立的,主要与华为厂商的推送策略以及 uni-push 的参数配置有关。

您提到在 force_notification: false 时,监听到消息后使用 uni.createPushMessage 无法创建通知。根据社区知识库历史记录,华为手机在某些系统版本或场景下,对应用主动创建本地通知栏消息有严格的限制,经常会出现无法弹出通知的情况。这也是为什么官方在 uni-push 2.0 中提供了 force_notification: true 参数的原因。

当您将 force_notification 修改为 true 后,华为依然无法创建消息通知,这通常与以下原因有关:

  1. 未配置华为消息分类(category):根据官方文档,华为、vivo、OPPO 等厂商对消息分类管理非常严格。如果发送推送时未正确配置 categoryoptions 参数,消息可能会被华为系统默认归类为“营销消息”并执行静默推送(即通知栏不会有声音提示,甚至不展示通知,需下拉通知栏才能看到)。请检查您的服务端推送代码中是否针对华为通道配置了正确的消息分类。
  2. 华为移动服务(HMS)异常:华为厂商通道必须依赖手机上的“华为移动服务”应用。如果该服务版本过旧或缓存异常,可能导致通知无法正常创建。建议在测试设备上更新“华为移动服务”至最新版本,并在手机“设置 -> 应用 -> 华为移动服务 -> 存储”中执行“删除数据”操作后重启 App 重试。
  3. 通知渠道被关闭:虽然您提到通知权限已打开且角标正常,但华为系统中可能存在细分的通知渠道(Channel)。请检查系统设置中该 App 的通知管理,确认是否存在被关闭的特定类别通知渠道。

3. 官方建议与下一步操作

为了进一步定位问题,建议您补充以下信息或进行以下操作:

  1. 补充代码示例:请提供前端 uni.onPushMessageuni.createPushMessage 的完整代码,以及服务端调用推送 API 的完整参数(特别是 optionscategory 字段的配置)。
  2. 检查消息分类配置:参考 uni-push 服务端 API 入参说明消息分类简介,确保已在华为开发者平台申请了消息分类,并在推送参数中正确传入。
  3. 排查 HMS 状态:按照上述第 2 点排查华为移动服务的状态。

在您补充完整的代码示例和参数配置后,我们可以更准确地判断该问题是由于系统限制、参数配置遗漏,还是 SDK 自身缺陷导致的。

内容为 AI 生成,仅供参考

要回复问题请先登录注册