5

我正在尝试使用新的 UNNotificationContentExtension 来显示本地通知的自定义用户界面,但只显示默认通知警报。

我使用 Xcode 模板创建了扩展,并UNNotificationExtensionCategory在 Info.plist 中指定了扩展。 在此处输入图像描述

在此之后,我正在注册通知并设置UNNotificationCategoryinapplication(_:didFinishLaunchingWithOptions:)

    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。也许有人以前遇到过同样的问题,可以在这里帮助我。

4

4 回答 4

6

无论设备是否具有 3D 触控功能,都可以使用丰富的通知内容。

对于没有 3D touch 的设备,可以下拉通知以获取丰富的界面。(或者如上所述在通知中心向左滑动。)

于 2016-10-07T20:22:40.033 回答
2

据我所知,UNNotificationContentExtension 还支持没有 3DTouch 的设备,对于这些设备,系统会在锁定屏幕上添加向左滑动的通知行为,滑动后您可以看到命名的按钮view,然后您可以看到内容如果你点击它扩展

于 2016-09-09T06:41:52.140 回答
1

刚刚体验到我UNNotificationContentExtension没有在运行 iOS 10.2.1 的 iPhone 7 上显示。

奇怪的是,内容扩展会很高兴地显示在 iOS 模拟器和运行 iOS 10.3.1 的 iPhone 6S 上。

修复:将 iPhone 7 更新到最新版本的 iOS (10.3.1) 修复了该问题,并且一切都按现在应该的方式显示。看起来一定是iOS本身的一个错误。

于 2017-05-04T14:50:21.137 回答
-1

你的代码没有问题。

据我所知,UNNotificationContentExtension 仅支持支持 3DTouch 的设备(测试环境 iOS10 beta1)。与 UNTextInputNotificationAction 相同。

然后按下或下拉即可显示自定义的 UIViewcontroller。

于 2016-06-28T02:42:13.247 回答