Значок Push-уведомления не обновляется в фоновом режиме с Urban Airship
Я боролся с чем-то, что, кажется, должно "просто работать" в течение некоторого времени. У меня есть push-уведомление, настроенное через Urban Airship, и все работает нормально, за исключением обновления значков, пока приложение находится в фоновом режиме. Насколько я могу судить, до тех пор, пока значок установлен в целое число в полезной нагрузке, это должно обрабатывать себя, если приложение не находится на переднем плане.
Если я захватываю обновление значка, когда приложение находится на переднем плане, я могу установить его правильно, но это это не причина, по которой я хотел бы использовать значки в своем приложении.
Вот моя настройка в didFinishLaunchingWithOptions:
UAConfig *config = [UAConfig defaultConfig];
// You can also programatically override the plist values:
// config.developmentAppKey = @"YourKey";
// etc.
// Call takeOff (which creates the UAirship singleton)
[UAirship takeOff:config];
[UAPush shared].notificationTypes = (UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeNewsstandContentAvailability);
[[UAPush shared] setPushEnabled:YES];
[[UAPush shared] setAutobadgeEnabled:YES];
[self performSelector:@selector(resetUABadge:)];
[[UAPush shared] handleNotification:[launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey]
applicationState:application.applicationState];
В resetUABadge называть просто устанавливает все обратно в 0, когда приложение запускает. Эта проблема сохраняется независимо от того, есть ли этот performSelector или нет.
Я не уверен, что есть какая-то конфигурация, которую я пропустил или что, но каждая другая часть push-уведомления работает, пока приложение находится в фоновом режиме/закрыто (предупреждение, звук), но значок просто не обновляется.
1 ответ:
Я нашел ответ через этот вопрос. Оказывается, если вы регистрируетесь как для
UIRemoteNotificationTypeBadge
, так и дляUIRemoteNotificationTypeNewsstandContentAvailability
, тип газетного киоска полностью нарушает маркировку. Надо признать, что я вообще не должен был регистрироваться в газетном киоске, но я и представить себе не мог, что это сломает баджинг.Вздох.