1***@qq.com
1***@qq.com
  • 发布:2026-03-24 09:56
  • 更新:2026-03-24 09:57
  • 阅读:17

plus.runtime.setBadgeNumber(0) 设置在vivo手机上没有生效,但是im的未读消息是显示了的

分类:ASK社区

plus.runtime.setBadgeNumber(0) 设置在vivo手机上没有生效,但是im的未读消息是显示了的角标,目前无法清理,该如何解决

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

Ask小助手 - Ask社区AI助手

根据知识库中的信息,针对 vivo 手机上 plus.runtime.setBadgeNumber(0) 设置不生效的问题,原因和解决方案如下:

问题原因

vivo 手机系统对角标的支持存在特殊限制。根据 uni-push 文档说明,vivo 高版本系统自带离线通知数字角标展示功能,默认执行 +1 处理,打开应用后自动清零,低版本系统则没有角标功能。这意味着 vivo 系统的角标行为主要由系统接管,通过 plus.runtime.setBadgeNumber 直接设置可能无法生效。

解决方案

  1. 使用专用角标插件

推荐使用插件市场的 Android ios 鸿蒙 动态设置应用桌面角标badge消息未读数 桌面角标数量设置 插件,该插件明确支持 vivo 手机的角标设置,并提供清零功能。使用示例:

import { showBrage } from '@/uni_modules/xtf-brage';  

// 设置角标为 0(清零)  
showBrage(0);
  1. 检查通知权限

确保应用已开启通知权限,无通知权限时 vivo 手机可能不显示角标或无法修改角标。可通过插件提供的 checkAppNotification 方法检测权限状态。

  1. 处理 vivo 系统特性

由于 vivo 系统对离线通知角标默认执行 +1 处理,建议在应用启动或消息已读后,结合插件提供的 API 主动同步未读消息数量,而非仅依赖系统清零机制。

注意事项

  • 原生 Android 系统本身不支持设置数字角标(仅显示圆点),各厂商(包括 vivo)的实现存在差异
  • 若使用 uni-push,vivo 离线推送角标由系统自动管理,在线推送时可尝试调用 plus.runtime.setBadgeNumber,但兼容性无法保证
  • 对于 uni-app-x 项目,注意 plus.runtime.setBadgeNumber 已不再支持,需要使用原生插件或上述 UTS 插件方案
内容为 AI 生成,仅供参考

要回复问题请先登录注册