已开启
[Bug] setBadge 无法通过 badge=0 清除应用角标(master) #51
JustVugg创建于 6 天前
6 天前 修改标题为 “[Bug] setBadge 无法通过 badge=0 清除应用角标”,原标题为“[Bug][HarmonyOS] setBadge 无法通过 badge=0 清除应用角标”
6 天前 修改标题为 “[Bug] setBadge 无法通过 badge=0 清除应用角标”,原标题为“[Bug][HarmonyOS] setBadge 无法通过 badge=0 清除应用角标”
6 天前 关联了pull request:(RNOH 0.77)修复设置非零角标后无法清除的问题
6 天前 关联了pull request:(RNOH 0.72)修复设置非零角标后无法清除的问题
6 天前 关联了pull request:修复设置非零角标后无法清除的问题
5 天前 修改标题为 “[Bug] setBadge 无法通过 badge=0 清除应用角标(master)”,原标题为“[Bug] setBadge 无法通过 badge=0 清除应用角标”
5 天前 修改标题为 “[Bug] setBadge 无法通过 badge=0 清除应用角标(master)”,原标题为“[Bug] setBadge 无法通过 badge=0 清除应用角标”
问题描述
在 JPush 已正常初始化,并且能够通过
setBadge设置非零角标的情况下,再调用setBadge({ badge: 0 })无法清除应用角标。HarmonyOS 实现会先判断:
if (n && n > 0) { JPushInterface.setBadgeNumber(n) }由于
0是 falsy 值,清零请求不会传递给JPushInterface.setBadgeNumber,此前设置的非零角标会一直保留。本问题只描述“已完成初始化后,
badge=0仍被过滤”的库实现问题。JPush 未初始化会导致非零和清零操作都失败,属于独立的使用前置条件。复现步骤
JPush.setBadge({ badge: 5, appBadge: 5 })。JPush.setBadge({ badge: 0, appBadge: 0 })。预期结果
badge=0被正常传递到原生接口,应用角标被清除。实际结果
badge=0被条件判断过滤,没有调用JPushInterface.setBadgeNumber(0),应用仍保留此前的非零角标。复现概率
必现(100%)。
前提是 JPush 已完成初始化,并且非零角标能够正常设置。
环境信息
@react-native-ohos/jpush-react-native3.1.3-rc.2@react-native-ohos/jpush-react-native3.2.1-rc.2@react-native-ohos/jpush-react-native3.3.0-beta.3@jg/push1.4.0DEMO
import JPush from 'jpush-react-native'; // 前提:JPush 已正常初始化 JPush.setBadge({ badge: 5, appBadge: 5 }); // 确认非零角标设置成功后执行 JPush.setBadge({ badge: 0, appBadge: 0 });影响范围
所有在 HarmonyOS 上使用
setBadge({ badge: 0 })清除通知角标的场景。设置正数不受影响,清除角标功能受影响。