Автоинкрементный значок Push-уведомления - PullRequest
24 голосов
/ 22 декабря 2009

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

Я думал о том, чтобы сделать это на стороне сервера (провайдера), проверять наличие новых сообщений и посылать номер в виде значка.

Вопрос в следующем: Есть ли способ автоматически увеличивать значок приложения без необходимости вычислять значение сервера значков на стороне сервера, а затем отправлять его как часть полезной нагрузки в APSN?

Может быть, есть способ отправить в поле значка JSON какую-нибудь переменную типа "++" или что-то в этом роде. Любой взлом для этого? Или мне нужно перейти с подсчета на стороне сервера ??

Ответы [ 4 ]

29 голосов
/ 22 декабря 2009

Нет, вам придется отслеживать это на стороне сервера. Если вы не включите значение для значка, оно будет полностью удалено.

Конечно, это только в том случае, если пользователь получает уведомление, а приложение не запускается / они предпочитают его не запускать. Если пользователь запускает приложение или уже запустил его, вы можете делать все, что хотите, в отношении увеличения.

ОБНОВЛЕНИЕ Март 2014: Смотрите комментарии для возможного обновления. Я не делал толчков в течение нескольких лет, поэтому не смог сам это проверить.

1 голос
/ 22 мая 2014

Вы можете попробовать бэкэнд-сервисы App42, которые обеспечивают автоматическое увеличение количества push-значков, которое поддерживается на стороне сервера. Для более подробной информации вы можете перейти по ссылке blog . Вот содержание блога:

Вот несколько вариантов использования, которые могут быть достигнуты с помощью автоматического увеличения количества значков в толковом уведомлении App42.

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

PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service.
string userName = "UserName";
string message= "{'badge':'increment'}";
pushNotificationService.SendPushMessageToUser(userName,message, new UnityCallBack())

N.B .: Пример объясняется для Unity / C #, но тот же процесс может быть применен и к другим.

Если вы хотите указать какое-либо число для значка или хотите уменьшить количество значков до нуля, вы можете использовать этот метод для обновления счетчика, когда пользователь нажимает на уведомление. В этом случае вы должны вызвать updatePushBadgeforDevice или updatePushBadgeforUser.

PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service.
string userName = "UserName";
string deviceToken = "DeviceToken";
int badges = 10; // For clear count make it 0 
pushNotificationService.UpdatePushBadgeforDevice(userName, deviceToken, badges,  new UnityCallBack());

PushNotificationService pushNotificationService = App42API.BuildPushNotificationService (); // Initializing PushNotification Service.
string userName = "UserName";
int badges = 10; // For clear count make it 0
pushNotificationService.UpdatePushBadgeforUser(userName, badges,  new UnityCallBack());

updatePushBadgeforDevice - Этот метод используется для обновления счетчика push-уведомлений определенного устройства, зарегистрированного пользователем.

updatePushBadgeforUser - Этот метод используется для обновления счетчика push-значков всех устройств, которые приобретает пользователь. В этом случае мы предполагаем, что у пользователя есть несколько устройств, зарегистрированных под его именем.

1 голос
/ 22 декабря 2009

Это возможно, но есть компромисс.

Вы всегда можете отправить непрочитанный итог как дополнительное значение JSON как часть полезной нагрузки push (push игнорирует ключи, которые он явно не понимает). После того как пользователь откроет приложение, прочитайте значение и настройте значок программным способом самостоятельно с помощью свойства applicationIconBadgeNumber UIApplication.

Проблема с этим заключается в том, что push корректирует значение значка, даже если пользователь не открывает приложение (т.е. когда он получает уведомление и пользователь нажимает «Отмена» вместо «Просмотр»). В этих случаях ваш значок не изменится, но как только они запустят приложение (если они нажмут «Просмотреть»), тогда ваше приложение сможет установить его правильно.

0 голосов
/ 08 июля 2015

Отправить +1 для счетчика значков, который автоматически увеличит счетчик значков на 1.

...