0

푸시 알림을 보내려면 CKSubscription을 사용하고 있습니다. 기기를 제대로 보내면 기기에서 모든 것을 올바르게 수신하지만 배지 카운트는 항상 +1이었습니다. 앱 실행 후 어떻게 0으로 설정할 수 있습니까?배지 개수를 변경하는 방법은 무엇입니까?

나는 FUNC 응용 프로그램의 didFinishLaunchingWithOptions

UIApplication.shared.applicationIconBadgeNumber = 0 

그러나 만약 당신이 응용 프로그램을 실행할 때, 배지는 번호가 다시 상승 다음 푸시 알림을 수신 사라에이 코드를 추가했습니다.

답변

0

올바른 장소에서 제로화하지 않는 것 같습니다.

didFinishLaunchingWithOptions은 앱이 백그라운드에서 다시 시작될 때 호출되지 않으며 실제로 실행될 때만 호출됩니다. 내가 생각할 수있는 배지의 가장 일반적인 용도는 알림을 받고 사용자가 알림을 보았을 때 알림을 원할 때입니다. 그래서 당신이 설정해야 할 곳입니다 applicationIconBadgeNumber = 0

예를 들어, 귀하의 앱이 메시지 목록이있는 단일보기이고 그 목록을보고 있으면 사용자가 메시지를 읽었다 고 말할만큼 충분하다면 대신 applicationWillEnterForeground을 사용할 수 있습니다. 이것은 백그라운드에서 돌아올 때마다 호출됩니다.

앱이 포 그라운드에있는 동안 알림이 들어올 때도 여전히 0으로 설정해야합니다.

+0

답장을 보내 주셔서 감사합니다. 사실 나는 그것을 시험해 보았고, 심지어 func 응용 프로그램 (... didReceiveRemoteNotification ...)에이 코드 조각을 넣으려고했다. 문제는 내가 내 구독 유형의 CloudKit 대시 보드에서 배지 수를 업데이트하지 않는다고 생각했다. 따라서 그것은 증가하지만, 어떻게 해야할지 잘 모릅니다 ... –

0

는 CKModifyBadgeOperation가 applicationDidBecomeActive

let badgeOp = CKModifyBadgeOperation(badgeValue: 0) 
badgeOp.modifyBadgeCompletionBlock = { (error) -> Void in 
if error != nil { print (“error with the badge”) 
} 
else { 
UIApplication.shared.applicationIconBadgeNumber = 0 } 
} 
CKContainer.default().add(badgeOp) 
} 

모든 작품을 퍼팅 그것을 해결 !!!! 너무 행복한!!!!

관련 문제