2013-07-01 32 views
2

我試圖獲取時,應用程序沒有運行遠程通知信息的遠程推送通知的內容,所以我被告知,我可以得到:如何檢索和處理在iOS應用

UILocalNotification *localNotification = [launchOptions 
        objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] 

的方法:

- (BOOL)application:(UIApplication *)application 
       didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

,但仍然無法獲取信息。

然後我使用alertView來顯示iPhone上的信息(無需Xcode啓動),仍然無法獲取信息。

任何其他問題會導致此?如果您有任何想法,請告訴我。

+0

當應用程序處於關閉狀態時,您將無法收到信息。只能在打開警報推送消息時才能調用它。 – Sawant

回答

5

如何檢索和處理遠程通知:

應用程序正在運行

以下方法中的userInfo已經包括推送通知

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
} 

應用程序沒有運行

的價值關鍵在launchOptions包含推送通知,在兩種情況下:

1.屏幕被鎖定,當收到遠程推送通知時,屏幕點亮,用戶解鎖屏幕,然後直接啓動應用程序。

2.用戶點擊下拉菜單中的通知啓動應用程序。 如果用戶直接點擊應用程序,則通知將會消失並丟失。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [launchOptions valueForKey:UIApplicationLaunchOptionsRemoteNotificationKey] description]; 
} 
3

只有在用戶從通知中啓動您的應用程序(例如在通知中心點擊該應用程序)啓動您的應用程序時,該鍵才處於啓動選項中。順便說一句,我不認爲你使用的課程是遠程通知(UILocalNotification)。

如果您的應用在設備收到推送時未處於前臺狀態,並且用戶沒有從通知中啓動您的應用,則通知將消失。你必須檢查你自己的服務器,看看你是否錯過了任何東西。

+0

在這種情況下,我該如何做到這一點: – piaChai

+0

就像我說過的,你需要將信息存儲在服務器上,並詢問服務器在啓動時錯過了什麼。 – Kevin

相關問題