Насколько большой может быть полезная нагрузка при отправке данных через WatchConnectivity?

При отправке данных с использованием структуры WatchConnectivity, либо с телефона на часы, либо наоборот, насколько велика может быть полезная нагрузка до рамки, я получаю ошибку WCErrorCodePayloadTooLarge?

Я не смог найти ответ на документацию Apple, и в настоящее время в Интернете не так много информации об этом в Интернете (на самом деле googling WCErrorCodePayloadTooLarge дает мне всего 4 результата).

Кто-нибудь проверил, чтобы попытаться найти ответ на этот вопрос? Если этот вопрос не получит ответа, я постараюсь сделать это сам и опубликовать результаты.

До сих пор вся информация, которую я имею, заключается в том, что она может поддерживать файлы размером более 30 МБ. Я думаю, это потому, что я принимаю много сырых фотографий на моем iPhone, и они обычно имеют размер ~ 36 МБ, и они всегда отображаются в приложении для просмотра фотографий.

Для справки, WCSession документация имеет следующее описание WCErrorCodePayloadTooLarge:

Ошибка, указывающая, что отправляемый элемент превышает максимальный размер предел. Этот тип ошибки может возникать как для словарей данных, так и для файлы.

Доступно в watchOS 2.0 и более поздних версиях.

Ответ 1

В соответствии с частными символами WCPayloadSizeLimitApplicationContext, WCPayloadSizeLimitMessage, WCPayloadSizeLimitUserInfo пределы (как и в iOS 9.0.2):

  • 65,536 байт (65,5 КБ) для сообщения
  • 65,536 байта (65,5 КБ) для информации пользователя
  • 262,144 байта (262,1 КБ) для контекста приложения

Я не знаю, почему Apple не документирует это, кроме того, что при отправке словарей через WatchConnectivity может быть сложно определить, насколько они велики. Разумеется, допустимые размеры могут меняться со временем.

Я не мог найти (и лично не наблюдал) ограничение максимального размера при отправке файлов, хотя я заметил, что он кажется ненадежным при отправке больших файлов (сотни МБ).