Как обрабатывать удаленные уведомления с включенным фоновым режимом
Я создаю и приложение, в котором включены фоновые режимы, а полезные данные push-уведомлений, которые получает приложение, имеют ключ "content-available".
Эта настройка приводит к didReceiveRemoteNotification
вызывая КАЖДЫЙ РАЗ, приложение получает push-уведомление, что означает, что если я получу 3 push-уведомления, когда приложение находится в фоновом режиме - функция сработает 3 раза, и код внутри нее будет выполнен, когда приложение будет applicationDidBecomeActive
Моя самая большая проблема заключается в том, что НЕТ способа узнать, нажал ли пользователь Push-оповещение системы или значок приложения, чтобы вывести приложение из фона, поскольку независимо от действий пользователя didReceiveRemoteNotification
будет стрелять
Есть ли способ узнать наверняка, что пользователь нажал на оповещение Sys?
и это: http://samwize.com/2015/08/07/how-to-handle-remote-notification-with-background-mode-enabled/ и другие ответы не кажутся полезными
1 ответ
For app is background push
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if ( application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground )
{
//opened from a push notification when the app was on background
}
}
For app is terminate state
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (launchOptions != nil) {
// Launched from push notification
NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
}
}