iOS极光推送清除角标解决方案

在集成极光推送后,遇到iOS app图标角标无法清除的问题。若从通知栏点击进入app,角标能正常清除,但直接打开app则不行。解决方法是结合使用`[UIApplication sharedApplication].applicationIconBadgeNumber = 0;`和`[JPUSHService setBadge:0];`或`[application cancelAllLocalNotifications];`两个方法,确保本地和远程通知的角标都能被正确清除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
最近在项目中集成了极光推送,接收通知后,发现手机上的app图标右上角一直有个红色的数字1无法清除,但是在代码中已经设置了使角标清除的方法。

通过测试发现,如果收到通知后点击通知栏进入app,则角标会清除;
如果收到通知后直接点击app图标或者设置方法使得接收通知后直接跳转页面进入app,则角标不会清除;

解决方法如下:

//程序在运行时收到通知,点击通知栏进入app

- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[JPUSHService setBadge:0];

}

//程序在后台时收到通知,点击通知栏进入app

- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center di
### 关于 UniApp 开发中 iOS 推送服务清除角标解决方案 在 UniApp 中,iOS 的推送通知角标清除功能可以通过调用系统的 API 实现。具体来说,在接收到消息或者用户手动操作时,可以利用 `clearBadge` 方法来清空应用图标上的角标数量。 以下是详细的实现方式: #### 使用 `plus.push.clearBadge()` 方法 UniApp 提供了基于 Plus API 的方法用于控制推送通知的相关行为。其中,`plus.push.clearBadge()` 是专门用来清除应用图标的未读消息数(即角标)。该方法适用于 Android 和 iOS 平台[^1]。 ```javascript function clearNotificationBadge() { plus.push.clearBadge(); // 清除角标 } ``` 当应用程序进入前台或完成某些特定逻辑后,可调用此函数以确保及时更新状态并移除角标提示。 #### 结合生命周期事件触发清理动作 为了更灵活地管理角标显示情况,可以在不同场景下调用上述代码片段。例如监听 app 切换至前台的时机执行 badge 清零命令: ```javascript document.addEventListener('plusready', function () { document.addEventListener("pause", function () { }, false); document.addEventListener("resume", function () { console.log("Application resumed"); plus.push.clearBadge(); }, false); }); ``` 这里通过绑定 resume 事件实现了每当程序重新激活就自动消除任何现存的通知标记效果[^2]。 另外需要注意的是对于部分特殊机型可能还需要额外考虑其专属API设置才能达到理想中的用户体验,比如vivo等品牌手机可能会有自己的一套机制去影响最终呈现形式所以开发者也应该查阅对应厂商文档做兼容适配工作[^3]. 最后提醒一点就是如果项目里涉及到多个入口文件的话记得统一维护好此类全局性的业务规则以免造成不必要的混乱.
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值