本地通知的通知服务扩展

时间:2016-12-29 11:30:27

标签: swift notifications ios10 uilocalnotification serviceextension

系统会加载通知服务扩展,并在iOS 10中调用其didReceive(_:withContentHandler:)来获取本地通知吗? 如果是,我们怎么做?

4 个答案:

答案 0 :(得分:6)

没有。接受的答案描述了Notification Content Extensions,它允许您在展开的通知视图中显示ViewController,并使用远程和本地通知。

通知服务扩展程序,可让您更改通知内容(附加图片等)使用本地通知。但是,您可以在过程中附加图像以显示本地通知。

答案 1 :(得分:2)

您需要创建一个通知内容扩展程序,以便使用iOS10显示自定义通知。在Xcode菜单栏中,转到File-> New-> Target。然后从列表中选择Notification Content Extension。 enter image description here

输入相应的详细信息,然后单击芬兰语。您将看到一个包含扩展名称的新文件夹。在该文件夹中,将有3个文件:

  1. NotificationViewController:您可以在此处设计自定义界面并实施响应。

  2. MainStoryboard:您可以使用它来设计自定义通知。

  3. 的Info.plist

  4. 在Info.plist文件中,添加以下内容: enter image description here

    这将是您在安排通知时将在主项目中使用的类别标识符。

    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.
        }
    

    网上有几个很好的教程。您可以查看herehere& here。 希望这会有所帮助。

答案 2 :(得分:0)

Notification Service扩展程序用于远程通知,而不用于本地通知。

As per apple doc

UNNotificationServiceExtension 在将远程通知的内容传递给用户之前对其进行修改的对象。

答案 3 :(得分:0)

Notification Extension也支持本地通知。明确提到here

UNNotificationContentExtension 呈现用于传递的本地或远程通知的自定义界面的对象。