2013-03-28 2 views
3

Я получаю сообщение Push с сервера. Сервер всегда отправляет значок = 1 в полезную нагрузку.Значок оповещения о автоматическом добавлении в iOS6

Разработчик серверной части ничего об этом не знает. Может ли кто-нибудь сказать мне, как разработчик на стороне сервера может обрабатывать значения счетчиков значков, чтобы приложение iOS получало обновленный счетчик значков (число авто увеличивающихся значков)?

  1. Могу ли я увеличивать его на стороне приложения iOS? Если да, то как?

  2. Если нет, то как разработчик сервера может обрабатывать количество значков на сервере? Я видел несколько ссылок, которые говорят мне, что серверная сторона должна обрабатывать количество значков.

Любой образец или ссылка были бы полезны.

ответ

4

Счетчик значков является одним из параметров, которые могут быть отправлены в полезной нагрузке Apple Push Notification с сервера. Счет значка обычно отражает количество каких-то новых данных (например, непрочитанных писем), которые сервер знает и хочет предупредить пользователя приложения об этом. Поэтому это должно быть сделано на стороне сервера. Код, который в настоящее время всегда отправляет 1 в счету значка, должен быть изменен для выбора правильного счета.

Вы можете сделать это в клиенте (при необходимости увеличивайте его на единицу при каждом появлении push-уведомления), но это не будет хорошей идеей, потому что не гарантируются точные уведомления. Кроме того, это возможно только в том случае, если уведомление содержит предупреждение в дополнение к номеру значка, и пользователь нажимает на уведомление, чтобы открыть приложение (в противном случае ваше приложение не получит данные уведомления, если оно еще не запущено) ,

+0

Да ... Это мое беспокойство, так как мое приложение не работает. Я не получу никаких данных, поэтому не могу обновить значок. Спасибо за объяснение. – iOSAppDev

+0

Можете ли вы рассказать, что произойдет, если пользователь получил счет значка = 8, и пользователь открывает приложение. Затем я очищу счетчик значков на сервере. затем давайте скажем, прежде чем очистить счетчик значков на сервере, сервер отправил еще одно push-уведомление с значком значка = 9 (8 + 1). Теперь пользователь увидит счет значка = 9. Правильно? – iOSAppDev

+0

@iOSAppDev Это правильно. Но предполагая, что приложение будет работать на переднем плане в этот момент (так как пользователь только открыл его), вы можете сразу очистить значок в клиенте, и пользователь, вероятно, его не увидит. – Eran

6

Я думаю, вы не можете сделать это со стороны приложения iOS. Он должен поступать с сервера.

Что я делаю:

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

Вы можете изменить номер жетона в приложении с этой линии (например, в applicationDidBecomeActive):

- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    application.applicationIconBadgeNumber = 0; 
} 

Надежда эта помощь.

+1

Спасибо за решение. – iOSAppDev

Смежные вопросы