Ограничение символа iPhone Push Notification

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

И какой формат они используют для интерпретации текста, который я отправляю? Является ли преобразование 1 символом = 1 байт или больше. На самом деле я хочу знать, сколько символов я могу отправить в push-уведомлениях.

Спасибо за любую помощь в понимании ограничений полезной нагрузки push-уведомлений.

Ответ 1

Каждое push-уведомление несет с собой полезную нагрузку. Полезная нагрузка указывает, как пользователи должны быть предупреждены о данных, ожидающих загружается в клиентское приложение. Максимальный размер, разрешенный для полезная нагрузка уведомлений составляет 256 байт; Служба уведомления Apple Push отклоняет любое уведомление, превышающее этот предел.

Для каждого уведомления поставщики должны составлять объект словаря JSON что строго придерживается RFC 4627. Этот словарь должен содержать другой словарь, идентифицированный ключевыми aps. Словарь aps содержит одно или несколько свойств, которые определяют следующие действия:

  • Предупреждающее сообщение для отображения пользователю
  • Номер, чтобы значок значка приложения с
  • Звук для воспроизведения

- Руководство по программированию локальных и push-уведомлений

Итак, отвечая на ваш вопрос,

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

Да, это ограничение размера включает маркер устройства и другую служебную информацию.

Является ли код преобразования 1 символом = 1 байтом или больше.

Это верно, если вы используете только латинские буквы в своем уведомлении.

Ответ 2

Выше все это довольно неясно, потому что "include" может означать "он уже включен" или "вы должны его включить". Чтобы быть предельно ясным, идентификатор устройства - это "метаданные", а не часть полезной нагрузки, и не выходит из вашего 256-символьного бюджета. Однако другие служебные данные APS (стандартный словарь полезной нагрузки).

Источник: приведенная выше документация плюс эксперимент для проверки.

Ответ 3

В моем тесте APNS в производственной среде может быть успешно отправлено до 33 китайских символов и 2 пользовательских свойства из 13 байтов.

{

    "aps": {
        "alert": "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三",
        "badge": 12,
    }
    "t": 123,
    "v": "1234567890"
}

Приведенная выше длина полезной нагрузки составляла 158 байт, если она сохранена как файл, не считая пробелов. Каждый китайский символ был подсчитан как 3 байта (я подтвердил, что, удалив все из них, чтобы увидеть изменение размера).

Как упоминалось в официальном документе, ограничение на 256 байтов не включает токен устройства, но я считаю, что в него включены другие символы, такие как "звук" и "контент-доступ", даже если вы не используете явно.

Поэтому будьте осторожны, чтобы не быть слишком длинным, особенно при использовании пользовательских полезных нагрузок. Имейте в виду, что среда разработки APNS не ограничивает длину полезной нагрузки. Ваш тест проходит при использовании среды разработки, но может не работать в продукте. Не считайте это определенным.