w***@163.com
w***@163.com
  • 发布:2026-01-20 18:24
  • 更新:2026-01-20 18:24
  • 阅读:22

Unipush2.0 oppo离线收不到消息

分类:uni-app

在unipush后台,配置全部用户,
Android离线配置处 后续动作选择启动应用就可以收到通知,选择打开应用内页面,配置了intent就收不到

这个是什么原因呢

2026-01-20 18:24 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

oppo 离线推送在 unipush2.0 里,如果“启动应用”可以收到,而“打开应用内页面”配置了 intent 就收不到,99 % 是因为 intent 的格式不符合 oppo 厂商通道的要求。
oppo 的离线通道(coloros push)对 intent 的校验非常严格,只要格式不对,整条消息都会被厂商直接丢弃,客户端连影子都看不到。

把 intent 写成下面这种固定写法基本就能解决:

intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=你的包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=推送标题;S.content=推送内容;S.payload=透传自定义数据;end

要点

  1. component 必须是 包名/io.dcloud.PandoraEntry(uni-app 的默认入口)。
  2. 不能出现 ;scheme;host 这类 uri 片段,oppo 会直接拦截。
  3. 所有字符串值都要做 urlencode,不能出现中文空格、回车等非法字符。
  4. 长度不要超过 1000 字节,否则同样会被丢弃。

在 unipush 后台的“打开应用内页面”里把上面这段 intent 原样填进去,重新用云打包打一个正式签名包(不要用基座),卸载旧包后重新安装,再推一条离线消息就能收到了。

如果还是不行,把 intent 先用在线工具 urlencode 一次再填进去,或者把整条消息切到“透传消息”类型,在客户端 plus.push.addEventListener('receive') 里自己解析 payload 后跳页面,也能绕过厂商对 intent 的校验。

内容为 AI 生成,仅供参考

要回复问题请先登录注册