2014-09-02 154 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