Счетчик значков push-уведомлений Quickblox iOS REST

Я создаю приложение с Corona SDK, у которого есть серверная часть QuickBlox. У меня есть последняя техническая проблема: как заставить счетчик значков увеличиваться при каждом получении push-уведомления? Я использую REST API для отправки сообщений.


person user2747184    schedule 04.09.2013    source источник


Ответы (2)


Чтобы управлять счетчиком значков в Push-уведомлении, вы должны отправить Push-уведомление с правильным значением значка. Устройство iOS не увеличивает его автоматически каждый раз, когда вы получаете новое push-сообщение

Чтобы отправить push с устройства iOS с определенным счетчиком значков, вы должны использовать этот код:

NSMutableDictionary *payload = [NSMutableDictionary dictionary];
NSMutableDictionary *aps = [NSMutableDictionary dictionary];
[aps setObject:@"default" forKey:QBMPushMessageSoundKey];
[aps setObject:@"This is Push Notification, baby!" forKey:QBMPushMessageAlertKey];
[aps setObject:@"5" forKey:QBMPushMessageBadgeKey];
[payload setObject:aps forKey:QBMPushMessageApsKey];

QBMPushMessage *message = [[QBMPushMessage alloc] initWithPayload:payload];

// Send push
[QBMessages TSendPush:message toUsers:@"218650" delegate:self];

Вы получите push-сообщение со значением значка = 5.

Также вы можете отправлять push-уведомления из панели администратора и управлять значением значка https://www.evernote.com/shard/s216/sh/7e53a5e3-c24b-4ae9-b4c4-855dd4f41370/b404dcb788992fb1a8dabe1bf0fbcc0f

person Rubycon    schedule 05.09.2013
comment
Хорошо, но это проект Corona, а не xCode. Так что, по сути, я должен хранить количество значков в базе данных и добавлять к нему 1, чтобы он работал? - person user2747184; 05.09.2013
comment
@IgorKhomenko, я думаю, что там какой-то беспорядок. Я получаю обновление счетчика значков, когда приложение получает push-уведомление с сервера QuickBlox (не отправляется через код).. но как мне управлять значком, когда я отправляю push-уведомление (через код). Откуда мне знать, что есть 6 значений значка (с сервера) и одно с моей стороны, поэтому мне нужно передать 7 для этого конкретного пользователя. - person Hemang; 01.05.2015

Отправка QBMPushMessageBadgeKey в качестве строкового параметра (по крайней мере, для iOS7) не будет обновлять значок значка, если приложение работает в фоновом режиме.

Вы должны отправить его как NSNUmber, и он будет работать очень хорошо, независимо от того, работает ли приложение в фоновом или переднем плане:

[aps setObject:@5 forKey:QBMPushMessageBadgeKey];
person Marcos Reboucas    schedule 19.11.2013