iOS极光推送清除角标解决方案
发布时间
阅读量:
阅读量
问题描述:
在项目开发过程中集成极光推送服务。
接收到通知后,在手机应用界面右上方始终显示一个红色数字1无法删除。
通过代码实现对该符号的清除功能。
经过测试分析可知:当在收到通知后选择点击应用图标并进入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 didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[JPUSHService setBadge:0];
}
//点击App图标,使App从后台恢复至前台
- (void)applicationWillEnterForeground:(UIApplication *)application {
[application setApplicationIconBadgeNumber:0];
[application cancelAllLocalNotifications];
}
//按Home键使App进入后台
- (void)applicationDidEnterBackground:(UIApplication *)application{
[application setApplicationIconBadgeNumber:0];
[application cancelAllLocalNotifications];
}
注意:
(1) [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
Set the badge of the JPUS to 0; cancel all local notifications by removing them.
这两个方法要同时使用才能清除本地图标和远程的通知!
全部评论 (0)
还没有任何评论哟~
