Настраиваемое push-уведомление в iOS

#ios #push-notification #apple-push-notifications #javapns

#iOS #push-уведомление #apple — push-уведомления #javapns

Вопрос:

Я из Android, сейчас работаю в кроссплатформенном мобильном приложении. У меня нет никаких знаний в iOS. В моем приложении мне нужно настроить push-уведомление, отображаемое на панели уведомлений. В Android я добиваюсь этого. Может ли кто-нибудь помочь мне в iOS?

Это мои данные json :

 {
"Test1":"Value 1",
"Test2":"Problem:[{"a":"b"},{"c":"d"}]"
}
  

Вывод должен быть: Значение 1 —> b, d

Что я пробовал

 - (void)handleBackgroundNotification:(NSDictionary *)notification
{
     NSMutableString *alert = [NSMutableString stringWithString:@""];
    if ([notification objectForKey:@"Test1"]){
        [alert appendString:(NSString *)[notification objectForKey:@"Test1"]];
    }
}
  

Я не знаю, правильно ли это.

Комментарии:

1. Из вашего вопроса неясно, спрашиваете ли вы об удаленных уведомлениях (Push-уведомлениях Apple) или локальных уведомлениях. Отправляете ли вы сообщение с сервера в приложение?

2. я использую Java_PNS.jar на стороне сервера затем его уведомление APNS?. Я не уверен

3. Содержимое push-уведомления устанавливается сервером. Так что это действительно вопрос сервера APNS, и он не имеет ничего общего с Xcode, который является просто IDE.

4. Да, я отправляю сообщение на устройство IOS, используя зарегистрированный идентификатор по мобильному телефону из APNS

5. И оно напечатано iOS, а не IOS 🙂

Ответ №1:

Вы отправляете Push-уведомления Apple со своего сервера в приложение iOS. Push-уведомления Apple предоставляют гораздо меньше свободы, чем GCM для Android. Отправляемый вами JSON должен выглядеть следующим образом :

 {"aps":{"alert":"message","badge":3,"sound":"sound-file-name"},"custom-property":"custom-value"}
  

Единственным параметром, используемым для отображения уведомления, является параметр «alert» (есть некоторые незначительные вариации — параметр «alert» может сам по себе быть словарем и определять некоторые дополнительные параметры, используемые для отображения сообщения, но ни один из них не является пользовательским параметром).

Вы можете добавить пользовательские параметры, как показано выше, но они не будут отображаться в уведомлении (они будут переданы методу, который обрабатывает уведомление, если пользователь нажмет на уведомление). В отличие от Android, вы не пишете код, который отображает уведомление. В iOS это часть операционной системы.

Вы можете дополнительно прочитать о полезной нагрузке уведомлений здесь .

Комментарии:

1. тем не менее, я получаю в формате JSON. нужно ли мне выполнять некоторые настройки на стороне клиента?. Теперь реакция на стороне сервера идеальна.

2. @RED.Skull Я просмотрел JSON в указанной вами ссылке. Это допустимая полезная нагрузка APNS. В чем вопрос?

3. я получаю уведомление. но мне нужно отформатировать это уведомление в панели уведомлений. Я просмотрел несколько ссылок «didReceiveRemoteNotification», этот метод поможет получать удаленные уведомления и отображаться в панели уведомлений. У вас есть идея по этому поводу. Пожалуйста, поделитесь … все еще проблема не была закрыта

4. @RED.Skull didReceiveRemoteNotification вызывается после того, как пользователь нажимает на уведомление, поэтому оно не влияет на формат отображаемого уведомления на панели уведомлений. Как я уже сказал в своем ответе, вы не можете программно управлять форматом отображаемого уведомления в своем приложении.

5. @RED.Skull Возможно, то, о чем вы читали didReceiveRemoteNotification , относится к тому, что происходит, когда уведомление приходит, когда приложение уже запущено на переднем плане. В этом случае на панели уведомлений ничего не отображается и didReceiveRemoteNotification вызывается с полезной нагрузкой уведомления в качестве параметра. Это единственный случай, когда вы можете программно решить, как отображать уведомление пользователю. В других случаях (приложение не запущено или приложение работает в фоновом режиме) у вас нет никакого контроля.