Как мы можем получить push-уведомление в фоновом режиме

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

4 ответа

Решение

Если вы используете URL в качестве отдельного ключа в aps, то возможно, что вы можете отобразить предупреждение только как сообщение, иначе любое сообщение не может быть изменено в фоновом режиме.

 "aps": {
        "alert": "alert!",
        "sound": "default",
        "URL"  : "your url"
        }

Я думаю, что в этом случае вы можете использовать дочерние свойства свойства alert, вы используете 1 аргумент в качестве предупреждения и другой аргумент в качестве URL, например: "aps": { "alert": { "loc-key": "ALERT", "loc-args": [ "Ваше предупреждающее сообщение", "Ваш URL"] }, "звук": "по умолчанию" }

Когда устройство получает уведомление, оно использует "ALERT" в качестве ключа для поиска соответствующего строкового значения в файле Localizable.strings в каталоге.lproj для текущего языка. Предполагая, что текущая локализация имеет запись Localizable.strings, такую ​​как эта: "ALERT" = "%@";

И позже вы можете получить свой URL, используя aps NSDictionary.

Да, это возможно, но это также зависит от того, как вы создали свою полезную нагрузку, но это просто, поскольку вы создаете свою полезную нагрузку со своей ссылкой и сообщением, получая от своего представителя

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)pushChatObject {
      // get the message value and NSLog is or set to UIAlert or in NSString
      (pushChatObject)[@"Message"];
}

Вы можете, но не должны, потому что

Доставка уведомлений - "лучшее усилие", а не гарантия. Он не предназначен для доставки данных в ваше приложение, а только для уведомления пользователя о наличии новых данных. (в) яблоко

Укажите уведомление как

{
    "aps": {
        "alert": "alert!",
        "sound": "default"
    },
    "URL": "http://apple.com"
}

Когда вы получаете уведомление в приложении, просто проверьте ваш параметр в словаре уведомлений:

// Place this method to AppDelegate.m
- (void)application:(UIApplication *)application didReceiveRemoteNotification:
                                         (NSDictionary *)notification {      
    if ([notification objectForKey:@"URL"]) {
        NSString *url = [[notification objectForKey:@"URL"] stringValue];
    }
}

Посмотрите этот раздел Руководства по программированию локальных и push-уведомлений Apple для получения дополнительной информации.

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