didReceive(_:withContentHandler:)
系统会在 iOS 10 中加载通知服务扩展并调用它来获取本地通知吗?如果是的话,我们怎么能做到这一点?
问问题
5154 次
4 回答
11
否。接受的答案描述了通知内容扩展,它允许您在扩展的通知视图中显示 ViewController,并适用于远程和本地通知。
允许您更改通知内容(附加图像等)的通知服务扩展不适用于本地通知。但是,您可以在显示本地通知的过程中附加图像。
于 2017-06-16T14:16:30.527 回答
2
于 2018-09-14T09:20:35.757 回答
1
您需要创建一个通知内容扩展来使用 iOS10 显示自定义通知。在 Xcode 菜单栏中,转到 File->New->Target。然后从列表中选择通知内容扩展。
输入相应的详细信息,然后单击芬兰语。您将看到一个带有扩展名的新文件夹。在文件夹中,将有 3 个文件:
NotificationViewController :您可以在此处设计自定义界面并实现响应。
MainStoryboard :您可以使用它来设计自定义通知。
信息列表
这将是您在安排通知时在主项目中使用的类别标识符。
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.
}
于 2017-01-26T16:17:04.717 回答
0
本地通知也支持通知扩展。这里明确提到
UNNotificationContentExtension 为传递的本地或远程通知提供自定义界面的对象。
于 2019-01-21T14:10:03.490 回答