web-dev-qa-db-ja.com

iOSでプッシュ通知バッジカウントをクリアする方法は?

アプリの起動後にプッシュ通知バッジカウントをクリアしたいのですが、以下のコードを設定する場所がわかりません。バッジカウントのクリアについて簡単に説明してください。

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
33
Deepak

これを設定する必要があります。

[UIApplication sharedApplication] .applicationIconBadgeNumber = 0;

これらのいずれかでAppDelegateメソッドが起動され、アプリケーションがバックグラウンドに送信された場合、アプリケーションを起動するとdidFinishLaunchingWithOptionsメソッドは呼び出されないため、これらのメソッドのいずれかを使用します。

- (void)applicationWillEnterForeground:(UIApplication *)application

- (void)applicationDidBecomeActive:(UIApplication *)application

Swift 3+

- func applicationWillEnterForeground(_ application: UIApplication)
- func applicationDidBecomeActive(_ application: UIApplication)
72
Sumanth

in Swift 3 +

あなたのAppDelegate.Swiftで、あなたのアプリケーションがアクティブになったら、以下のようにすべてクリアします。

func applicationDidBecomeActive(_ application: UIApplication) {
        UIApplication.shared.applicationIconBadgeNumber = 0
    }
10
Chanaka Caldera

さて、これを行うより良い方法は、バッジ番号を減算する関数を作成し、ユーザーがバッジをクリアできるようにするUIButtonを作成することです。デフォルトのメールアプリケーションでは、メールを1通読むと、バッジからアイコンから1が差し引かれます。起動時または再開時に0に設定しないでください。これは無意味であり、アプリが安っぽく見えます。ユーザーがそのイベントを操作するときに減算するのが最善の方法です。アプリをよりプロフェッショナルにしましょう。ベッドの意味を知っているアプリの起動時にリセットするだけであれば、アプリを使用しないこともできます。

3
Kevin

そのコードはコード内のどこにでも設定できます。関係ありません。ただし、通常はUIApplicationDidFinishLaunching。に保持されます。

1
Akshay Shah
    UIApplication.shared.applicationIconBadgeNumber = 1
    UIApplication.shared.applicationIconBadgeNumber = 0
0
Tejash Joshi