#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
вызывается с полезной нагрузкой уведомления в качестве параметра. Это единственный случай, когда вы можете программно решить, как отображать уведомление пользователю. В других случаях (приложение не запущено или приложение работает в фоновом режиме) у вас нет никакого контроля.