Обновление значка iOS без push-уведомлений


86

Я видел несколько приложений todo, которые обновляют свои значки приложений в полночь, всегда показывая правильное количество задач. Они делают это без использования Push-уведомлений, поэтому у меня вопрос: как они это делают? Используют ли они локальные уведомления - если да, то вызываются ли они при выключении устройства? Я немного запутался и был бы признателен за ваш вклад.

Ответы:


137

Попробуй это

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

Для этого через локальные уведомления необходимо установить значение в applicationIconBadgeNumber

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

1
Вот как вы меняете номер значка - но для того, чтобы сделать это, когда приложение работает в фоновом режиме или если телефон спит, вам может потребоваться изучить локальные уведомления или запланированные задачи.
Jasarien 01

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

17

И для всех, кто использует новый и блестящий Swift:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

Swift 3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
предлагая быстрые ответы, рекомендуется указывать, какую версию вы освещаете, поскольку сейчас это очень динамично.
Хуан Боэро,

да ты прав ; В этом случае, однако, в синтаксисе нет ничего, что могло бы измениться (это простое присвоение), поэтому, вероятно, в этом нет необходимости :)
Джири Тречак

3
Иржи, забавный комментарий в ретроспективе ;-)
Тим

13

Начиная с iOS 4.0, вы можете запускать локальные уведомления на всех устройствах, работающих под управлением iOS не ниже 4.0. Посмотрите на UILocalNotificationкласс, он позволяет вам установить значок в полночь, не запуская ваше приложение.


Хм, iPhone даже не может запустить будильник, когда он выключен, так что нет, значок не будет обновляться. Но когда вы снова включите его, он запустит уведомление (я), которое обновит значок.
JustSid 01

Хорошо, вот что я хотел знать. Благодарность!
fabian789 01

7

Set UIApplication«сек applicationIconBadgeNumberсвойства в коде , когда приложение работает:

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.