application: didReceiveRemoteNotification: fetchCompletionHandler:
отличается от
application: didReceiveRemoteNotification:
Как? из документов:
В отличие от приложения: didReceiveRemoteNotification: метод, который вызывается только тогда, когда ваше приложение запущено, система вызывает этот метод независимо от состояния вашего приложения. Если ваше приложение приостановлено или нет работает, система просыпается или запускает ваше приложение и помещает его в перед запуском метода. Если пользователь открывает ваше приложение из системного предупреждения, система вызывает этот метод снова, чтобы вы знали, какое уведомление пользователь выбрал.
Моя борьба такова: я хочу знать, вызвал ли этот метод пользователь, нажав на системное предупреждение из Центра уведомлений или из молчащего push-уведомления, которое просыпает устройство. В настоящее время, насколько я вижу, нет очевидного способа дифференцировать.
- (BOOL)application: didFinishLaunchingWithOptions:
Отслеживание launchOptions в вышеуказанном методе не является решением, потому что оно вызывается только в том случае, если приложение приостановлено/не работает в фоновом режиме. Если он работает в фоновом режиме, он не вызван.