调用云函数推送离线消息
- 发布:2026-03-02 13:58
- 更新:2026-03-02 13:58
- 阅读:15
产品分类: uniCloud/App
操作步骤:
预期结果:
通知栏可以收到消息
通知栏可以收到消息
实际结果:
通知栏不能收到
通知栏不能收到
bug描述:
通过云函数调用推送消息离线收不到,后台页面推送可以收到。uni-push2.0版本,使用本地自定义打包。
控制台“故障排查 → 状态查询”可以查到设备devicetoken。
oppo oneplus 7T clolorOS V12.1
后台页面推送可以收到,应该app打包是否没问题?
推送云函数参数:
const pushResult = await uniPush.sendMessage({
"push_clientid": "27e91775091371009edc0feb06997f31",
"title": "tat",
"content": "tat",
"force_notification": true,
"payload": {
"title": "tat",
"content": "tat"
}
}
Ask小助手 - Ask社区AI助手
需要补充平台分类(安卓,ios,鸿蒙 next,小程序)和hbuilderx版本信息。请提供详细的报错信息和服务空间id。
欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。
【官方评审意见】
一、反馈完整性评估
-
BUG 描述:已说明“后台页面推送能收到、云函数推送离线收不到”,但缺少关键信息
- 未提供 manifest.json 中 OPPO 厂商通道配置截图(AppID / AppKey / AppSecret / MasterSecret)
- 未说明是否已在 OPPO 开发者后台正确配置 MasterSecret(优先知识库已指出该字段与 AppSecret 不同)
- 未给出云函数 package.json 是否已声明
"uni-cloud-push"扩展库 - 未提供云函数完整代码(仅给出
sendMessage参数片段,无法确认是否遗漏category、options等厂商通道必填字段)
-
代码示例:不完整,无法直接运行。需补充
- 云函数 package.json
- 云函数 index.js 完整代码
- manifest.json 中 push 及 OPPO 厂商配置
-
复现步骤:仅一句“调用云函数推送离线消息”,需补充
- 测试机是否已彻底杀掉 App(确保进入离线状态)
- 控制台“故障排查 → 状态查询”返回的 devicetoken 是否属于 OPPO 通道(而非 socket 通道)
-
预期/实际结果:描述合理,但需排除“透传消息未展示通知栏”的误报(知识库指出透传格式不符规范时不会进消息中心)。
-
分类信息:已给出机型、系统、uni-push2.0、本地自定义打包,但缺少 HBuilderX 版本号、云函数运行环境(本地/云端)。
二、Bug 是否成立
根据知识库:
- uni-push 厂商通道常见问题 明确列出 OPPO 离线收不到的主要原因:MasterSecret 错误、category 缺失、包名/签名/证书不一致、未重新云打包。
- 优先知识库再次强调:OPPO 必须配置 MasterSecret(与 AppSecret 不同)。
- 若后台页面推送能收到,仅能证明 socket 通道正常,不能证明厂商通道已通。
因此,当前信息不足以认定是 uni-push SDK 的 Bug,更可能是配置或参数缺失导致的厂商通道未生效。
三、后续建议(需用户补充)
- 在 OPPO 开发者平台 → 配置管理 → 应用配置 中确认 MasterSecret 并已填入 DCloud 后台。
- 云函数
sendMessage增加 OPPO 专用参数:options: { android: { OPPO: { "/message/android/notification/channel_id": "xxx", // OPPO 后台创建的通知渠道 "/message/android/category": "IM" } } } - 确认 manifest.json 已配置
"push"→"oppo"节点且重新云打包。 - 提供完整可复现 demo(云函数 + manifest.json + 复现步骤)。
如补充后仍无法解决,请携带上述信息到 DCloud 社区 发帖并 @官方技术支持。