0

私はCKSubscriptionを使用してプッシュ通知を送信しています。デバイスを正しく送信し、デバイスはすべて正しく受信しましたが、バッジ数は常に以前のものと+1になります。アプリケーションを実行した後、どうすれば0に設定できますか?バッジカウントを変更するにはどうすればよいですか?

私は、FUNCアプリケーションdidFinishLaunchingWithOptions

UIApplication.shared.applicationIconBadgeNumber = 0 

にこのコードを追加した。しかし、あなたがアプリケーションを実行すると、バッジは数が再び上昇し、次のプッシュ通知を受け、消えます。

答えて

0

あなたは正しい場所でそれをゼロにしていないようですね?

didFinishLaunchingWithOptionsは、実際に起動されたときにのみ、アプリがバックグラウンドから再開したときに呼び出されません。私が考えることができるバッジの最も一般的な使用は、あなたが通知を受け取っているときに、ユーザーが通知を見たときにそれらをゼロにしたい場合です。あなたが設定する必要があるのはapplicationIconBadgeNumber = 0

たとえば、あなたのアプリはメッセージのリストを持つ単一のビューであり、そのリストを見るだけでメッセージを読んだことを伝えるのに十分であれば、代わりにapplicationWillEnterForegroundを使うことができます。これは、バックグラウンドに戻ってくるたびに呼び出されます。

アプリがフォアグラウンドになっている間に通知が届いても、それをゼロにする必要があります。

+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) 
} 

内のすべての作品を、それを置くことでそれを解決!!!!とても幸せ!!!!

関連する問題