Advertisement

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)

还没有任何评论哟~