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

ios objective-c push-notification

635 просмотра

3 ответа

883 Репутация автора

Я хочу получать данные из push-уведомлений, когда приложение выключено. Я использую следующий код, указанный ниже:

- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 
{
    NSDictionary *aps = userInfo[@”aps”];

    if (state == UIApplicationStateInactive){
    // user tapped notification
         NSLog(@"results%@",aps);
         completionHandler(UIBackgroundFetchResultNewData);
    } else {
    // app is active             
         completionHandler(UIBackgroundFetchResultNoData);
    }
}

В приведенном выше коде NSLog (@ "results% @", aps); не печатает значения, когда приложение находится в фоновом режиме. Пожалуйста, помогите мне

Автор: Prashant Sharma Источник Размещён: 18.07.2016 05:28

Ответы (3)


3 плюса

6675 Репутация автора

didReceiveRemoteNotification работает только при нажатии на уведомление. поэтому он будет предоставлять вам данные только тогда, когда вы нажмете на уведомление, и ваше приложение будет открыто.

Если вы хотите получить NSDictionary * aps = userInfo [@ ”aps»]; когда ваше приложение находится в состоянии уничтожения, вы должны реализовать фреймворк pushkit.

Вы можете скачать пример кода из 1 моего ответа

Может кто-нибудь поделиться примером кода iOS Xamarin PushKit в C #?

Зарегистрируйтесь для получения уведомлений по VoIP вне приложения.

Источник https://github.com/hasyapanchasara/PushKit_SilentPushNotification

Автор: Hasya Размещён: 18.07.2016 05:34

0 плюса

384 Репутация автора

Когда приложение выключено или didReceiveRemoteNotificationпрервано, чтобы быть точным, не вызывается по очевидным причинам. Функция didFinishLaunchingWithOptionslaunchOptions Appdelegate предоставляет решение для этого. Launchoptions - это, по сути, словарь, который сообщает приложению, каким образом оно было запущено. Для реализации необходимо проверить, имеет ли launchOptions какое-либо значение в ключе UIApplicationLaunchOptionsRemoteNotificationKey, например, так ()

let userInfo = launchOptionForApp[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary

Ваш словарь userInfo содержит json, который вам понадобится для анализа и реализации вашей дальнейшей логики

Автор: Rakshith Nandish Размещён: 18.07.2016 05:40

0 плюса

883 Репутация автора

Пример изменения со стороны сервера, который помог мне.

{
    aps = {
        "content-available" : 1,
        sound : ""
    };
}
Автор: Prashant Sharma Размещён: 18.07.2016 06:22
Вопросы из категории :
32x32