IOS/XCode: как узнать, что приложение было запущено с щелчком на уведомлении или на значке приложения для трамплинов?

Я хотел бы знать, есть ли способ узнать, было ли запущено приложение (которое можно закрыть или открыть в фоновом режиме), нажав на:

  • уведомление (в центре уведомлений)?
  • или значок приложения на трамплине?

Спасибо!

Ответ 1

введите этот код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UILocalNotification *notification = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];

    if (notification) {
        // launched from notification
    } else {
        // from the springboard
    }
}

в UIApplicationDelegate.

Ответ 2

Из Apple Docs на Планирование, регистрация и обработка уведомлений:

Примечание iOS.. В iOS вы можете определить, запускается ли приложение в результате нажатия пользователем кнопки действия или отправки уведомления в уже запущенное приложение путем изучения приложения государство. В делегатах реализована реализация application:didReceiveRemoteNotification: или application:didReceiveLocalNotification:, получите значение свойства applicationState и оцените его. Если значение UIApplicationStateInactive, пользователь нажал кнопку действия; если значение UIApplicationStateActive, приложение было самым ранним, когда оно получило уведомление.