oppo设备手机在uni-app中数字角标设置无效

oppo设备手机在uni-app中数字角标设置无效

信息类别 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 10
HBuilderX类型 正式
HBuilderX版本号 4.57
手机系统 Android
手机系统版本号 Android 14
手机厂商 OPPO
手机机型 一加
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 使用plus.runtime.setBadgeNumber此api

预期结果:

  • 应该能够正常显示数字角标

实际结果:

  • 未能显示数字角标

bug描述:

  1. 使用:用plus.runtime.setBadgeNumber这个api设置app应用的角标
  2. 问题:除了oppo外,苹果、华为、vivo小米等手机都生效
  3. 代码使用:在app进行设置先清除后设置也没用
  4. 补充:测试设备已经和官方开通且申请了数字角标,在官网网页用Registration ID去测试推送,数字角标能显示
  5. 以下附件图是 使用oppo官网网页推送测试,角标正常展示结果
  6. 推送使用的是:个推

image


更多关于oppo设备手机在uni-app中数字角标设置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

19 回复

可以加官方人员问下

更多关于oppo设备手机在uni-app中数字角标设置无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


单独问还没回复,我有这个人微信

回复 1***@qq.com: 让他给你拉群里去,有个群,在群里艾特问

回复 套马杆的套子: 谢谢!好的,我有在群里艾特问了

回复 1***@qq.com: 大佬,想问一下,如果oppo想实现角标plus.runtime.setBadgeNumber自定义角标数量,且离线有新推送的时候自动加1,应该怎么配置合适,目前没找到有用的文档

回复 1***@qq.com: oppo应该是没开放,得找厂商对接,你可以联系官方人员

回复 套马杆的套子:

回复 套马杆的套子: 我找了设置了俩个参数,badge_operation_type【数字角标操作类型 0:覆盖 1:增加】和badge_message_count【设置数字角标数量 0 : 清除数字角标(需要设置覆盖 操作类型) 1-99 : 显示对应的数字角标大于 99: 显示 99+】,官方那边说白名单开放,测试设备支持配置角标。badge_operation_type设为0、badge_message_count为0,还是没有用。但用他们官网推送就有数字角标,oppo官方说角标不显示不是oppo的问题

这是个推多厂商的

你可以在云函数中试试,options里,OP对象里加 “/android/notification/badge/addNum”: 1,

回复 套马杆的套子: 好的,谢谢,我试试

回复 套马杆的套子: 奇怪了,还是没有角标,用的是早上打的基底座包。我重改云函数并部署了,本地真机测试连的云端函数,角标还是没有,推送收到了,难道还需要重打包嘛?

回复 1***@qq.com: 那估计就是不行,之前跟官方的了解过,他们说oppo官方不支持没对外开放,只能显示点,不能显示数字

回复 套马杆的套子:这样子呀,我这个限制连点都没得,对方提供那两个参数让加说是能支持数字角标,结果啥效果都没有

回复 套马杆的套子: 大佬,我刚问oppo,回复:白名单开放,去申请才有,大部分应用是没有,im类、内部办公oa 的可以申请。关键我申请了,现在很迷惑。

回复 1***@qq.com: 你去问问个推的官方,看他们怎么说。因为我当初做的时候,我不是能申请的分类,所以就没后续了,就没再弄了

回复 套马杆的套子: 好勒,感谢!个推我问了真是还没回,群里艾特了,我等等

回复 套马杆的套子: 大佬,离线设置有角标了,但是在线走的不是厂商,通过plus.runtime.setBadgeNumber设置无效

在OPPO设备上使用plus.runtime.setBadgeNumberAPI设置数字角标无效,通常是由于OPPO系统对应用角标管理的限制。OPPO系统默认禁止应用直接修改角标,需要通过其推送服务(如OPPO Push)间接设置。

原因分析

  1. 系统限制:OPPO系统(ColorOS)对非系统应用或未通过其推送服务的角标设置进行了拦截。
  2. 推送依赖:OPPO设备角标通常需通过其官方推送通道(OPPO Push)触发,直接调用setBadgeNumber可能被忽略。
  3. 权限问题:应用可能缺少角标显示权限,需用户手动在系统设置中开启。

解决方案

  1. 集成OPPO推送:在uni-app中配置并启用OPPO推送服务,通过服务端调用OPPO Push API设置角标。确保推送消息中携带角标数值参数。
  2. 检查系统权限:引导用户在“设置-通知管理”中为应用开启“桌面图标角标”权限。
  3. 兼容性处理:在代码中判断设备品牌,对OPPO设备改用推送方式设置角标,其他品牌继续使用setBadgeNumber
  4. 测试推送通道:使用OPPO官方推送测试工具验证角标功能,确保服务端配置正确。

代码调整示例(需结合推送服务):

// 通过条件编译或设备判断处理OPPO设备
if (plus.os.vendor === 'OPPO') {
  // 调用服务端接口,通过OPPO Push设置角标
  // 需服务端支持OPPO推送及角标参数
} else {
  plus.runtime.setBadgeNumber(数字);
}
回到顶部