Предупреждающее сообщение push-уведомления iOS на основе данных в оповещении
Все,
Я отправляю push-уведомления с данными в строке. Пример:
{
"aps": {
"alert": "1,FriendsName,3,4,pink, green",
"sound": "default"
}
}
или же
{
"aps": {
"alert": "2,drinks, adress",
"sound": "default"
}
}
Теперь я хочу, чтобы в сообщении отображался текст, основанный на значениях в строке. Итак (псевдокод): если первый символ в "alert" = 1 => "alert = @" Цвет из%@ равен%@", friendsName, розовый
если первый символ в "alert" = 2 => `"alert = @"Пригласить для%@ at %@", напитки, адрес
Это вообще возможно? И если так: как?
1 ответ
Нет, это невозможно так, как вы хотите. iOS обрабатывает push-уведомления, и ваше приложение не влияет на способ представления уведомления. iOS просто представит то, что вы отправите в уведомлении.
Однако вы можете использовать локализацию для достижения желаемого:
"alert" : { "loc-key" : "ALERT_FORMAT", "loc-args" : [ "FriendsName", "pink"] },
Где ALERT_FORMAT
это локализация в вас Localizable.strings
файл:
"ALERT_FORMAT" = "Color from %@ is %@"
Но вам придется изменить тип уведомления на сервере, поэтому для уведомления, которое вы отправляете в виде приглашения, вам нужно будет изменить уведомление на сервере.
Таким образом, вы отправите что-то вроде этого для приглашения:
"alert" : { "loc-key" : "ALERT_INVITE", "loc-args" : [ "drinks", "adress"] },
Где ALERT_INVITE
это локализация в вас Localizable.strings
файл:
"ALERT_INVITE" = "Invite for %@ at %@"
Так что вы JSON для push-уведомлений должны выглядеть так:
{
alert" : {
"loc-key" : "ALERT_FORMAT",
"loc-args" : [ "FriendsName", "pink"]
}
}