如何在没有AppDelegate的iOS中收到推送通知时收到通知?

时间:2014-09-02 13:28:13

标签: ios objective-c notifications

我为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];
}

1 个答案:

答案 0 :(得分:1)

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