次のコードを使用すると、アプリのコンパイル直後にバッジアイコンに(2)が表示されます。
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = 2
installation.saveInBackground()
}
私は次のバリアントを試しました:新しいvar badgeCount = 0
以降:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
badgeCount++
let installation = PFInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.badge = badgeCount
installation.saveInBackground()
}
しかし、新しい通知を受け取っても、+ 1に更新されません。誰でもそれを修正する方法を知っていますか?
アプリが実際に開いていない限り、この方法でバッジ番号は更新されません。通知の受信時にバッジ番号を更新する場合は、json Push通知のBadgeプロパティを目的の番号に設定する必要があります。
(jsonを使用しない)通常のメッセージを送信している場合、バッジ番号を増やすトグルがあります。 Jsonを使用している場合、これを使用します。
{
"aps": {
"alert": "Test Push Notification",
"sound": "yourSound.aiff",
"Badge": "desiredNumber"
}
}
サーバーからこれを送信したくない場合は、Parseのクライアントプッシュを使用して1つのデバイスから別のデバイスに送信し、Parse.comのアプリの設定に移動して「クライアントプッシュ」を有効にできます。次に、上記のJsonを別のユーザーのデバイスに送信します。
コードがコンパイルされるたびに、以前にアプリに保存されていたバッジアイコンが表示されます。アプリでバッジアイコンを0に設定しない場合、コンパイルするかバックグラウンド状態になるたびにバッジアイコン番号がアプリに表示されます。
あなたの問題のために、バッジアイコンを
var badgeCount = 0
UIApplication.sharedApplication().applicationIconBadgeNumber = ++badgeCount
また、タスクの完了時にバッジアイコンを0に設定すると、アプリにバッジアイコンが表示されます
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
同様のシナリオに取り組み、バッジ番号を増やしてリセットする最終的な解決策を見つけました。
増分バッジ番号
NSUserDefaults
).applicationIconBadgeNumber
_に設定し、メモリ内のカウントを更新します。バッジ番号をリセット
didFinishLaunchingWithOptions
のAppDelegate
にUIApplication.sharedApplication().applicationIconBadgeNumber = 0
を設定しました。また、メモリ内のカウントをリセットします。これらの回答はいずれももはや有効ではありません。
AppDelegateではなく、Pushコードを確認する必要があります
Parseドキュメントから:
badge: (iOS/OS X only)
the value indicated in the top right corner of the app icon.
This can be set to a value or to Increment in order to increment the current value by 1.