Предупреждающее сообщение 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"]
        }
}
Другие вопросы по тегам