web-dev-qa-db-ja.com

iOS 10でアプリアイコンのバッジ番号を設定する方法

問題:

IOS 10でアプリアイコンのバッジ番号を設定しようとしていますが、失敗します。私はUIUserNotificationSettingsがiOSで廃止され、UNNotificationSettingsがそれを置き換えることを理解しています。

質問:

IOS 10でUNNotificationSettingsを使用してアイコンバッジ番号を更新するには、以下のコードをどのように変更しますか?または、別の簡潔な方法はありますか?

コード:

次のコードは、iOS 7-iOS 9からバッジを設定する方法を示しています。

let badgeCount: Int = 123
let application = UIApplication.sharedApplication()

if #available(iOS 7.0, *) {
    application.applicationIconBadgeNumber = badgeCount
}

if #available(iOS 8.0, *) {
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil))
    application.applicationIconBadgeNumber = badgeCount
}

if #available(iOS 9.0, *) {
    application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil))
    application.applicationIconBadgeNumber = badgeCount
}

if #available(iOS 10.0, *) {
    // ?????
}
8
user4806509

UserNotificationsAppDelegateに実装する必要があります。

import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

次に、didFinishLaunchingWithOptions内で次のコードを使用します。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
        if error != nil {
            //
        }
    }
    return true

}

ここnotificationsトピックでは、重要な情報がたくさん見つかります。

バッジの場合:

let content = UNMutableNotificationContent()
content.badge = 10 // your badge count
5
David Seek