菜鸟教程小白 发表于 2022-12-13 01:29:32

ios - 在没有 AppDelegate 的情况下在 iOS 中收到推送通知时如何获取通知?


                                            <p><p>我正在为 iOS 构建推送通知的静态库。在没有访问 <code>AppDelegate</code> 的情况下如何知道何时收到推送通知?换句话说,我不希望用户调用某些库委托(delegate)以便在收到推送通知时告诉 lib。 <code>AppDelegate</code> 有这个方法 <code>didRegisterForRemoteNotificationsWithDeviceToken</code> ,如果我能在调用该方法时收到通知就完美了。我认为 <code>NSNotificationCenter</code> 必须是解决方案,但是没有可以通过将观察者添加到 <code>NSNotificaitonCenter</code> 来接收这样的通知,该通知将在收到推送通知时触发。还是我错了?</p>

<p>但是,有一种解决方案,而不是我必须承认的最干净的解决方案,可以接收用户设置的 <code>AppDelegate</code>,将其保存到属性并创建新的 <code>AppDelegate</code>这会将所有内容路由到之前设置的 <code>AppDelegate</code>。 (在 <code>dealloc</code> 上,应该更新属性)但是,这意味着只有一个库可以做到这一点,所以我认为这不是做到这一点的方法。这是它的代码:</p>

<pre><code>{
    ....
    self.applicationDelegate = .delegate;
    .delegate = self;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return ;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为你需要在你的库 <code>UIResponder <UIApplicationDelegate></code> 中实现子类,在其中实现 <code>didRegisterForRemoteNotificationsWithDeviceToken</code>。
并让您的图书馆的用户继承您的 appdelegate 类。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在没有 AppDelegate 的情况下在 iOS 中收到推送通知时如何获取通知?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25624604/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25624604/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在没有 AppDelegate 的情况下在 iOS 中收到推送通知时如何获取通知?