簡體   English   中英

如何在點擊本地通知時確定后台應用程序成為前台

[英]How to determine background app come to foreground in action of tapping local notification

蘋果醫生在后台獲得用戶的關注

通知是掛起,處於后台或未運行的應用程序引起用戶注意的一種方式。

由於區域監視,我的應用被iOS喚醒,並is in the background並發布本地通知。 用戶點擊通知,應用將處於前台。

如何確定應用程序由於用戶點擊通知而進入前台?

哪個委托方法將包含通知信息。

didFinishLaunchingWithOption or didReceiveLocalNotification

如果您的應用程序在后台運行,並且在LocalNotification Banner上點擊,則將被調用以下方法:

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

在iOS 8之后:

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void(^)())completionHandler

如果應用未在后台運行,您將在以下位置收到通知:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if ([launchOptions valueForKey:@"UIApplicationLaunchOptionsLocalNotificationKey"]) {
 // here you will get
}

您可以在觸發UILocalNotification並檢測是否調用了-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification時檢測到您的應用程序的狀態,以確保接收到本地通知。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
    UIApplicationState state = [application applicationState];
    if (state == UIApplicationStateInactive) {
        // Application was in the background when notification was delivered.
    } else {

    }
}

您可以通過使用application.applicationState確定

 if(application.applicationState == UIApplicationStateInactive)
     {
           NSLog(@" Inactive");
      // when you tapping on notification

     }
    else if (application.applicationState == UIApplicationStateBackground)
    {
           NSLog(@" background");
    }
    else
    {
          NSLog(@" Active");

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM