Как очистить счетчик значков push уведомления в iOS?
Я хочу очистить счетчик значков push-уведомления после того, как приложение запущено. Не понятно, где установить приведенный ниже код. Пожалуйста, дайте краткое описание об очистке счетчика значков.
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
Ответы
Ответ 1
Вы должны установить это:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
в
любой из этих методов AppDelegate, если приложение запускается и отправляется в фоновый режим, то при запуске приложения метод didFinishLaunchingWithOptions
вызываться не будет, поэтому используйте любой из этих методов:
- (void)applicationWillEnterForeground:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application
Для Свифта 3+
- func applicationWillEnterForeground(_ application: UIApplication)
- func applicationDidBecomeActive(_ application: UIApplication)
Ответ 2
быстро 3+
в вашем AppDelegate.Swift, когда ваше приложение активно, снимите все, как показано ниже.
func applicationDidBecomeActive(_ application: UIApplication) {
UIApplication.shared.applicationIconBadgeNumber = 0
}
Ответ 3
Ну, лучший способ сделать это - сделать функцию, которая вычитает номер значка, а затем сделать UIButton, чтобы позволить пользователю очистить значок. В почтовом приложении по умолчанию, если вы прочтете одно письмо, значок вычитает один из значка.
Вы никогда не должны устанавливать его 0 при запуске или возобновлении, это бессмысленно и делает приложение выглядеть дерьмовым.
Вычтите его, когда пользователь взаимодействует с этим событием, это лучший способ сделать это. Сделайте свое приложение более профессиональным, если вы просто reset, когда запуск приложения, который знает, что означает прослойки, может также не использовать его.
Ответ 4
Вы можете установить этот код в любом месте кода. Не имеет значения. Но в целом, хранится в UIApplicationDidFinishLaunching
..
Ответ 5
UIApplication.shared.applicationIconBadgeNumber = 1
UIApplication.shared.applicationIconBadgeNumber = 0