2012-02-08 52 views
0

使用iOS 5,推送通知可以顯示爲橫幅並在幾秒後消失。 我明白,當用戶點擊橫幅時,didReceiveRemoteNotification將被調用。iOS 5橫幅推送通知消失,用戶點擊應用程序圖標啓動應用程序

我的問題是,如果橫幅已經消失,並且我的用戶看到應用上有徽章編號,他們將點擊應用圖標啓動應用。現在,如果應用程序正在後臺運行,我如何檢查應用程序是否已進入前臺,並且已經發出通知,並執行必要的操作?

我通知的目的基本上是告知用戶應用內容已經更新,並鼓勵他們運行應用獲取最新內容。我的應用程序僅在啓動時檢查最新內容,並且不會定期檢查更新。

回答

0

這個問題有點老,但我會彈出我在這裏找到的東西。

您需要在應用程序委託中實現以下兩種方法來檢查您的應用程序是從遠程通知啓動的(從應用程序未在設備上運行時啓動)還是在運行時收到遠程通知背景或前景)。

首先是已經在應用程序委託的方法:

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

要檢查,如果這是從遠程通知啓動,有類似這樣的代碼:

// Check to see if launched from notification 
if (launchOptions != nil) 
{ 
    NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if (dictionary != nil) 
    { 
     NSLog(@"Launched from push notification: %@", dictionary); 
     // DO SOMETHING HERE 
    } 
} 

您需要實現的另一種方法特別針對您的應用程序在運行時的應用程序:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
    NSLog(@"Received notification: %@", userInfo); 
} 

你如何處理通知取決於你,但這就是你的應用程序知道它的方式!

在第二種方法中,您可以檢查傳遞的應用程序的UIApplicationState以確定您是否處於前景或背景中。

相關問題