Как определить, что фоновое приложение выходит на первый план в действии касания локального уведомления

Apple Doc Как привлечь внимание пользователя в фоновом режиме

Уведомления - это способ для приложения, которое приостановлено, находится в фоновом режиме или не работает, чтобы привлечь внимание пользователя.

Мое приложение разбудило iOS из-за мониторинга региона и is in the background и опубликовать местное уведомление. Пользователь коснется уведомления и приложение будет на переднем плане.

Как определить, что приложение выходит на передний план из-за уведомлений, прослушиваемых пользователем?

Какой метод делегата будет содержать информацию уведомления.

didFinishLaunchingWithOption or didReceiveLocalNotification

3 ответа

Решение

Если ваше приложение работает в фоновом режиме и вы нажали на баннер LocalNotification, то вам будет вызван следующий метод:

-(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) приложение:(UIApplication *) приложение didReceiveLocalNotification:(UILocalNotification *) вызвано уведомление, это гарантирует получение локального уведомления.

- (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");

    }
Другие вопросы по тегам