2016-07-28 6 views
2

Я тестирую три iDevices. Устройство 1 активирует уведомление об изменении подписки CKS.Сбросить значение значка CKNotificationInfo только для текущего устройства

Устройство 2 и 3 получает уведомление и количество жетонов увеличивается до 1.

я кодированной сбросить номер жетона до 0 каждый раз, когда приложение доходит до переднего плана, как показано ниже. (В applicationDidBecomeActive :)

CKModifyBadgeOperation *badgeResetOperation = [[CKModifyBadgeOperation alloc] initWithBadgeValue:0]; 
[badgeResetOperation setModifyBadgeCompletionBlock:^(NSError * operationError) { 
    if (!operationError) { 
     [UIApplication sharedApplication].applicationIconBadgeNumber = 0; 
    } 
}]; 
[[CKContainer defaultContainer] addOperation:badgeResetOperation]; 

Если пользователь отключит мое приложение на устройстве 2, код выше будет выполнен. Это работает хорошо. Номер значка сбрасывается на 0. Но проблема в том, что номер значка на устройстве 3 также становится 0 одновременно, хотя я не использовал свое приложение на устройстве 3.

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

Справочник по API говорит: «Этот рабочий объект может обновить значок для текущего устройства или всех устройств пользователя».

https://developer.apple.com/reference/cloudkit/ckmodifybadgeoperation?language=objc

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

Пожалуйста, кто-нибудь поможет мне, как это сделать.

ответ

1

Если все ваши 3 устройства вошли в систему с одинаковым идентификатором iCloud, все они будут иметь одинаковый счетчик значков. Значки хранятся в учетной записи iCloud пользователя. Вот почему это одно и то же для каждого устройства, зарегистрированного с этой учетной записью.

Зарегистрируйте другие устройства на разных учетных записях iCloud и снова запустите свой тест. Это должно сработать.

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

+0

Я понял механизм, однако, я думаю, что есть способ установить номер значка для каждого устройства, даже если они зарегистрированы в той же учетной записи iCloud. Поскольку в Справочнике API говорится: «Этот объект операции может обновить значок для« ТЕКУЩЕЕ УСТРОЙСТВО ИЛИ »для всех устройств пользователя. –

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

  • Нет связанных вопросов^_^