IPhone画面の上から下にスワイプしたときに、通知バナーからリモート通知をクリアする方法はありますか?バッジ番号をゼロに設定してみました:
application.applicationIconBadgeNumber = 0
デリゲートdidFinishLaunchingWithOptions
、およびdidReceiveRemoteNotification
では、通知はクリアされませんでした。ありがとう。
IconBadgeNumberを0に設定し、現在の通知をキャンセルする必要があります。私はSwiftで行ったことはありませんが、そのコードは次のようになると思います。
application.applicationIconBadgeNumber = 0
application.cancelAllLocalNotifications()
IOS 10では、すべてのソリューションが廃止されます
'cancelAllLocalNotifications()'はiOS 10.0で廃止されました:UserNotificationsフレームワークの-[UNUserNotificationCenter removeAllPendingNotificationRequests]を使用してください
以下のコードを使用して通知をキャンセルし、バッジ数をリセットします
IOS 10の場合Swift 3.0
cancelAllLocalNotifications
はiOS 10で廃止されました。
@available(iOS, introduced: 4.0, deprecated: 10.0, message: "Use UserNotifications Framework's -[UNUserNotificationCenter removeAllPendingNotificationRequests]") open func cancelAllLocalNotifications()
このインポートステートメントを追加する必要があります。
import UserNotifications
通知センターを取得します。そして以下のような操作を行います
application.applicationIconBadgeNumber = 0 // For Clear Badge Counts
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications() // To remove all delivered notifications
center.removeAllPendingNotificationRequests() // To remove all pending notifications which are not delivered yet but scheduled.
1つまたは複数の特定の通知を削除する場合は、以下の方法で達成できます。
center.removeDeliveredNotifications(withIdentifiers: ["your notification identifier"])
それが役に立てば幸い..!!
それが機能するためには、バッジの数を増やしてから減らす必要があります。
application.applicationIconBadgeNumber = 1
application.applicationIconBadgeNumber = 0
application.cancelAllLocalNotifications()
Swift 4以上のコードを探している人
application.applicationIconBadgeNumber = 0
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
Swift
あなたのAppDelegate.Swift
didFinishLaunchingWithOptions
の下のファイル追加:
application.applicationIconBadgeNumber = 0
アプリの起動時に、これによりiOSバッジが削除されます(アプリアイコンの右上隅にある赤い丸)。
2019年11月、以下はSwift 4.を使用した私にとって有効なソリューションです。まず、すべての通知をクリアするにはデバイスのバージョンを確認する必要がありますが、バッジ数をリセットするために確認する必要はありません。
override func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? ) -> Bool {
//--------
application.applicationIconBadgeNumber = 0
if #available(iOS 10.0, *) {
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications()
center.removeAllPendingNotificationRequests()
} else {
application.cancelAllLocalNotifications()
}
//------
}