8

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

4

4 回答 4

11

否。接受的答案描述了通知内容扩展,它允许您在扩展的通知视图中显示 ViewController,并适用于远程和本地通知。

允许您更改通知内容(附加图像等)的通知服务扩展不适用于本地通知。但是,您可以在显示本地通知的过程中附加图像。

于 2017-06-16T14:16:30.527 回答
2

通知服务扩展用于远程通知而不是本地通知。

根据苹果文档

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

于 2018-09-14T09:20:35.757 回答
1

您需要创建一个通知内容扩展来使用 iOS10 显示自定义通知。在 Xcode 菜单栏中,转到 File->New->Target。然后从列表中选择通知内容扩展。 在此处输入图像描述

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

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

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

  3. 信息列表

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

网上有几个很好的教程。你可以在这里这里这里查看。希望这可以帮助。

于 2017-01-26T16:17:04.717 回答
0

本地通知也支持通知扩展。这里明确提到

UNNotificationContentExtension 为传递的本地或远程通知提供自定义界面的对象。

于 2019-01-21T14:10:03.490 回答