菜鸟教程小白 发表于 2022-12-11 19:25:59

ios - 如何在没有 Storyboard 的情况下创建 UNNotificationContentExtension?


                                            <p><p>为我的应用的通知处理添加内容扩展。我让它工作,但我想在没有直接指定 Storyboard 的情况下做到这一点。原因是我希望能够将其传递给(我正在开发的)第 3 方框架,以处理呈现通知和管理用户响应。</p>

<p>我尝试删除 <code>NSExtensionMainStoryboard</code> 条目并添加 <code>NSExtensionPrincipalClass</code> 条目,以便我可以在代码中加载 View 。但是,我的类(class)没有被实例化。这是类定义:</p>

<pre><code>class NotificationViewController: NSObject, UNNotificationContentExtension {
    override init() {
      super.init()
      print(&#34;extension instantiated&#34;)
    }

    func didReceive(_ notification: UNNotification) {
      print(&#34;notification received&#34;)
    }
}
</code></pre>

<p>这是我的 NSExtension 条目:</p>

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

<p>有人为内容扩展做过这个吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>根据 <a href="https://stackoverflow.com/a/39882189/293215" rel="noreferrer noopener nofollow">this answer</a> ,我认为您在 <code>NSExtensionPrincipalClass</code> 中缺少模块前缀:</p>

<blockquote>
<p>The value should be thenamespace of your extension and the class of
the main ViewController.For example, if your extension is called
<strong>Pretty Notification</strong> and the class is <strong>PrettyNotificationViewController</strong>, you would enter <strong>Pretty_Notification.PrettyNotificationViewController</strong>.</p>
</blockquote></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在没有 Storyboard 的情况下创建 UNNotificationContentExtension?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47757969/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47757969/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在没有 Storyboard 的情况下创建 UNNotificationContentExtension?