問題:
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, *) {
// ?????
}
UserNotifications
をAppDelegate
に実装する必要があります。
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