我正在为iOS构建用于推送通知的静态库。在没有访问AppDelegate的情况下,如何确定何时收到推送通知?换句话说,我不希望用户调用某些库委托来告诉lib何时收到推送通知。 AppDelegate具有这种方法didRegisterForRemoteNotificationsWithDeviceToken,如果在调用该方法时可以收到通知,那将是完美的选择。我以为NSNotificationCenter必须是解决方案,但是没有这样的通知可以通过将观察者添加到NSNotificaitonCenter来接收,当收到推送通知时将触发该通知。还是我错了?

但是,有一种解决方案,不是我必须承认的最清洁的解决方案,在该解决方案中,可以接收用户设置的AppDelegate,将其保存到属性中,然后创建新的AppDelegate,它将所有内容路由到先前设置的AppDelegate。 (在dealloc上,应该更新属性)但是,这意味着只有一个库可以做到这一点,所以我不认为这是这样做的方式。这是它的代码:

{
    ....
    self.applicationDelegate = [UIApplication sharedApplication].delegate;
    [UIApplication sharedApplication].delegate = self;
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return [self.applicationDelegate application:application didFinishLaunchingWithOptions:launchOptions];
}

最佳答案

我认为您需要在您的库UIResponder <UIApplicationDelegate>中添加子类,并在其中实现didRegisterForRemoteNotificationsWithDeviceToken
并让您的库的用户继承您的appdelegate类。

10-08 07:23
查看更多