我正在使用三個iDevices進行測試。 設備1觸發CKSubscription變更通知。僅針對當前設備重置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
我認爲這意味着有隻重置單個設備我想辦法。
請有人指導我如何實現它。
我明白這個機制,但是,我猜想有一種設置每個設備的徽章號碼的方法,即使他們登錄在同一個iCloud帳戶。因爲API參考說'這個操作對象可以爲所有用戶的設備更新「CURRENT DEVICE OR」的徽章。 –