2014-09-02 150 views
2

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

然而,有一个解决方案,而不是一个干净的,我必须承认,其中一个可以接收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

我认为你需要继承你的图书馆UIResponder <UIApplicationDelegate>,在它didRegisterForRemoteNotificationsWithDeviceToken实现。 并让你的图书馆的用户子类你的appdelegate类。

+0

我不知道这是否会工作,但我喜欢这个想法,并想尝试一下。 – thesummersign 2015-04-14 12:33:09