5

新しい UNNotificationContentExtension を使用して、ローカル通知用のカスタム ユーザー インターフェイスを表示しようとしていますが、デフォルトの通知アラートしか表示されません。

Xcode テンプレートで拡張機能を作成UNNotificationExtensionCategoryし、Info.plist で指定しました。 ここに画像の説明を入力

この後、通知の登録と設定を行っていUNNotificationCategoryますapplication(_: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])

アプリが次のコードでバックグラウンドに入ってから 5 秒後にトリガーするように通知をスケジュールしています。

    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 では既定のスタイルが表示され、既定のストーリーボード ファイルで定義されたカスタム UI は表示されません。誰かが以前に同じ問題に遭遇し、ここで私を助けることができるかもしれません.

4

4 に答える 4

6

デバイスに 3D タッチがあるかどうかに関係なく、豊富な通知コンテンツを利用できます。

3D タッチのないデバイスでは、通知をプルダウンしてリッチ インターフェイスを取得できます。(または、前述のように、通知センターで左にスワイプします。)

于 2016-10-07T20:22:40.033 に答える
2

私が知っているように、UNNotificationContentExtension は 3DTouch を持たないデバイスもサポートします。これらのデバイスの場合、システムはロック画面の通知に左にスワイプする動作を追加します。スワイプした後、名前の付いたボタンが表示されview、コンテンツが表示されます。タップすると延長

于 2016-09-09T06:41:52.140 に答える