Оновлення значка iOS без push-сповіщень


86

Я бачив кілька додаткових програм, які оновлюють значки своїх програм опівночі, завжди показуючи правильну кількість відповідних завдань. Вони роблять це без використання push-сповіщень - тому моє запитання: як вони це роблять? Чи використовують вони локальні сповіщення - якщо так, чи викликаються вони, коли пристрій вимкнено? Я трохи розгублений і був би вдячний за певні вказівки.

Відповіді:


137

Спробуйте це

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Для цього через локальні сповіщення потрібно встановити значення в applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge

1
Таким чином ви змінюєте номер значка, але для того, щоб зробити це, поки програма перебуває у фоновому режимі або якщо телефон спить, можливо, вам доведеться переглянути місцеві сповіщення або заплановані завдання.
Jasarien

2
У iOS 8.0 і пізніших версіях ваша програма повинна зареєструватися для сповіщень користувачів за допомогою - [UIApplication registerUserNotificationSettings:], перш ніж мати можливість встановити значок значка.
unom

17

І для всіх, хто використовує новий і блискучий Свіфт:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Свіфт 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
пропонуючи швидкі відповіді, корисно включити, яку версію ви охоплюєте, оскільки вона зараз дуже динамічна.
Juan Boero

так, ти правий ; Однак у цьому випадку в синтаксисі немає нічого, що могло б змінитися (це просте призначення), тому, мабуть, не потрібно :)
Іржі Тречак

3
Іржі, кумедний коментар з огляду на минуле ;-)
Тім,

13

З iOS 4.0 ви можете запускати локальні сповіщення на всіх пристроях, що працюють принаймні з iOS 4.0. Подивіться на UILocalNotificationклас, він дозволяє встановити значок опівночі, не запускаючи програму.


Ем, iPhone навіть не може запустити будильник, коли його вимкнено, тож ні, значок не оновлюється тоді. Але коли ви ввімкнете його знову, він запустить сповіщення, які оновлять значок.
JustSid

Гаразд, це те, що я хотів знати. Дякую!
fabian789

7

Set UIApplication«сек applicationIconBadgeNumberвластивості в коді , коли додаток працює:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.