簡體   English   中英

如何創建沒有情節提要的UNNotificationContentExtension?

[英]How do I create a UNNotificationContentExtension without a Storyboard?

將內容擴展名添加到我的應用的通知處理中。 我可以使用它,但是我想在沒有直接指定情節提要的情況下進行操作。 原因是我希望能夠將其傳遞給我正在開發的第3方框架,以處理呈現通知和管理用戶響應。

我嘗試刪除NSExtensionMainStoryboard條目並添加NSExtensionPrincipalClass條目,以便可以在代碼中加載視圖。 但是,我的班級沒有被實例化。 這是類的定義:

class NotificationViewController: NSObject, UNNotificationContentExtension {
    override init() {
        super.init()
        print("extension instantiated")
    }

    func didReceive(_ notification: UNNotification) {
        print("notification received")
    }
}

這是我的NSExtension條目:

<dict>
    <key>NSExtensionAttributes</key>
    <dict>
        <key>UNNotificationExtensionDefaultContentHidden</key>
        <true/>
        <key>UNNotificationExtensionCategory</key>
        <string>Messaging</string>
        <key>UNNotificationExtensionInitialContentSizeRatio</key>
        <real>1</real>
    </dict>
    <key>NSExtensionPrincipalClass</key>
    <string>NotificationViewController</string>
    <key>NSExtensionPointIdentifier</key>
    <string>com.apple.usernotifications.content-extension</string>
</dict>

有人對內容擴展做了此嗎?

根據這個答案 ,我認為您在NSExtensionPrincipalClass中缺少模塊前綴:

該值應為擴展的名稱空間和主ViewController的類。 例如,如果擴展名為Pretty Notification且類為PrettyNotificationViewController ,則應輸入Pretty_Notification.PrettyNotificationViewController

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM