Очистить Push-уведомления из центра уведомлений после выбора одного

Я хочу очистить все push-уведомления моего приложения, как только пользователь выберет одно из push-уведомлений.

Я видел другие темы здесь, которые говорят, что это невозможно в iOS. но у меня есть одно приложение, загруженное из магазина приложений, что делает то же самое.

Ответ 1

Если это локальное уведомление, то для удаления значка значка вы должны сделать это следующим образом:

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;

Если это push-уведомление, вы можете сделать это с помощью кода, написанного ниже

[UIApplication sharedApplication].applicationIconBadgeNumber=0;

Вы можете вызвать эти методы в любом месте. Например, если вы хотите очистить уведомление в момент запуска приложения, напишите его в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

если ваше приложение не использует номер значка, который вы должны сначала установить, затем reset удалить его из центра уведомлений.

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

Ответ 2

Все, что вам нужно сделать, это

application.applicationIconBadgeNumber = 0;

в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions.

ИЗМЕНИТЬ

Если вы не закрываете приложение, а просто отправляете его на задний план. Затем добавьте это в свою нижнюю функцию.

  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground  )
    {
         //opened from a push notification when the app was on background
         application.applicationIconBadgeNumber = 0;
    }
}