系统会加载通知服务扩展,并在iOS 10中调用其didReceive(_:withContentHandler:)
来获取本地通知吗?
如果是,我们怎么做?
答案 0 :(得分:6)
没有。接受的答案描述了Notification Content Extensions,它允许您在展开的通知视图中显示ViewController,并使用远程和本地通知。
通知服务扩展程序,可让您更改通知内容(附加图片等)不使用本地通知。但是,您可以在过程中附加图像以显示本地通知。
答案 1 :(得分:2)
您需要创建一个通知内容扩展程序,以便使用iOS10显示自定义通知。在Xcode菜单栏中,转到File-> New-> Target。然后从列表中选择Notification Content Extension。
输入相应的详细信息,然后单击芬兰语。您将看到一个包含扩展名称的新文件夹。在该文件夹中,将有3个文件:
NotificationViewController:您可以在此处设计自定义界面并实施响应。
MainStoryboard:您可以使用它来设计自定义通知。
的Info.plist
这将是您在安排通知时将在主项目中使用的类别标识符。
let category = UNNotificationCategory(identifier: "myNotificationCategory", actions: [], intentIdentifiers:[], options: [])
UNUserNotificationCenter.current().setNotificationCategories([category])
content.categoryIdentifier = "myNotificationCategory"
您的NotificationViewController类应该如下所示。
func didReceive(_ notification: UNNotification) {
//change properties of notification here.
}
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
//implement response logic here.
}
答案 2 :(得分:0)
Notification Service扩展程序用于远程通知,而不用于本地通知。
UNNotificationServiceExtension 在将远程通知的内容传递给用户之前对其进行修改的对象。
答案 3 :(得分:0)
Notification Extension也支持本地通知。明确提到here
UNNotificationContentExtension 呈现用于传递的本地或远程通知的自定义界面的对象。