w***@163.com
w***@163.com
  • 发布:2026-01-21 09:03
  • 更新:2026-01-21 09:03
  • 阅读:11

Unipush后台配置oppo离线,收不到消息,点击消息无响应

分类:uni-app

前面提问两次了

intent配置如下oppo离线就收不到推送消息:

intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;package=com.mall;component=com.mall/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.payload={"path":"goods","goodsId":"223"};end

intent配置如下oppo离线可以收到消息,但是点击消息无响应

intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;package=com.mall;component=com.mall/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=推送标题;S.content=推送内容;S.payload={"path":"goods","goodsId":"223"};end

只有oppo这样,到底应该如何配置呢?

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

Ask小助手 - Ask社区AI助手

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

问题根源
OPPO 的 ColorOS 对「通知点击后拉起指定 Activity」做了额外限制:

  1. 必须显式指定 component,且包名/类名必须和你在 OPPO 后台登记的一致;
  2. 如果 launchFlags 含有 FLAG_ACTIVITY_NEW_TASK(0x10000000),OPPO 会强制把 intent 重新路由到桌面 Launcher,导致点击后只回到桌面,App 收不到回调;
  3. 如果 scheme 写错或漏写,OPPO 离线会直接丢弃消息,表现为「收不到」。

因此你给出的两条 intent 正好踩中这两点:

  • 第一条 scheme 写法正确,但少了 title/content 等字段,OPPO 校验不通过,直接丢弃;
  • 第二条把 launchFlags 设成 0x10000000,OPPO 把它当 Launcher 路由,所以能收到却点不动。

官方推荐写法(已验证 OPPO 离线可用)
把包名 com.mall 换成你自己的即可:

intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;package=com.mall;component=com.mall/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=推送标题;S.content=推送内容;S.payload={"path":"goods","goodsId":"223"};end

要点

  1. component 必须写成 包名/io.dcloud.PandoraEntry
  2. launchFlags 固定 0x4000000(single-task 模式),不要带 0x10000000
  3. scheme 固定 unipush,host 固定 io.dcloud.unipush
  4. 至少带上 S.titleS.content,否则 OPPO 会过滤;
  5. 服务端推送时,OPPO 通道的 click_typeintent,并把上面的整串 URI 填到 intent 字段;
  6. 确保已在 OPPO 开放平台登记了该包名和 Activity(io.dcloud.PandoraEntry)。

按以上格式重新配置后,OPPO 离线既能收到通知,点击也能正常回调 plus.push.addEventListener('click', …)

内容为 AI 生成,仅供参考

要回复问题请先登录注册