2

我在我的應用程序中使用本地通知,我唯一關心的是用戶點擊的確切通知。如何處理用戶點擊的本地通知

方法

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 

接到通知,但我需要處理當用戶點擊它,所以這是對我沒用的通知時觸發。

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

只有觸發時應用程序未運行,也沒有什麼,我需要

我搜索網,但只找到該應用是否活躍或不運行處理。我應該如何處理它的背景?

我需要什麼,換句話說是認識到用戶點擊,當應用程序是在後臺

回答

5

在運行時創建UILocalNotification確切的通知,你可以設置userInfo設置任何相關的數據/唯一標識符。

Ex。

UILocalNotification *someNotification = [[UILocalNotification alloc] init]; 
[someNotification setUserInfo:@{ kSomeUniqueIdentifierKey : @"identifier" }]; 

然後,

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{ 
    if ([notification.userInfo[kSomeUniqueIdentifierKey] isEqualToString:@"identifier"]) { 
     // We know what notification was responded to based on userInfo 
    } 
} 

上述方法火災或者立即在接收到通知而應用程序正在運行時,或者當用戶敲擊該燒製而應用程式是在後臺通知。

如果您希望在應用程序運行時忽略這些通知,則可以始終檢查應用程序的狀態以確定它是在運行時還是在後臺響應通知。

+0

該函數僅在第一次發送通知時觸發。 – Dima

+0

不推薦使用iOS 10 –

-1

我正在使用iOS 9,解決方案是檢查AppDelegate didFinishLaunchingWithOptions內的launchOptions。如下:

// Were we launched from a local notification? 
    if let lo = launchOptions 
    { 
     if let ln = lo[UIApplicationLaunchOptionsLocalNotificationKey] as? UILocalNotification 
     { 
      // Do our thing... 
     } 
    } 
+0

我在3年前問過它!你的答案是不相關的。 – Dima