【发布时间】:2016-10-26 19:54:30
【问题描述】:
我正在尝试使用新的 UNNotificationContentExtension 来显示本地通知的自定义用户界面,但只显示默认通知警报。
我使用 Xcode 模板创建了扩展,并在 Info.plist 中指定了 UNNotificationExtensionCategory。
在此之后,我正在注册通知并在application(_:didFinishLaunchingWithOptions:) 中设置UNNotificationCategory
let center = UNUserNotificationCenter.current()
center.requestAuthorization([.alert, .sound]) { (granted, error) in
// Enable or disable features based on authorization.
}
let action = UNNotificationAction(identifier: "Delete", title: "Delete", options: [])
let category = UNNotificationCategory(identifier: "notify-test", actions: [action], minimalActions: [], intentIdentifiers: [], options: [])
UNUserNotificationCenter.current().setNotificationCategories([category])
我正在安排通知在应用程序使用此代码进入后台五秒后触发:
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey: "Hello!", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey: "Hello_message_body", arguments: nil)
content.sound = UNNotificationSound.default()
content.categoryIdentifier = "notify-test"
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 5, repeats: false)
let request = UNNotificationRequest.init(identifier: "notify-test", content: content, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request)
通知按预期触发,但在显示 iOS 默认样式时,未显示默认 Storyboard 文件中定义的自定义 UI。 也许有人以前遇到过同样的问题,可以在这里帮助我。
【问题讨论】:
-
自定义通知内容只能与 3D Touch 结合使用(我相信)。这意味着只有在用户对通知警报执行 3D Touch 时才会调用您的通知代码。
-
我可以更新这种通知的内容吗?还是取消之前的内容并显示更新内容的新内容是唯一的选择?
标签: ios swift uikit ios10 unnotificationrequest