2015-10-08 1 views
10

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

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

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

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

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

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

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

ответ

24

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

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

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

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

+0

Спасибо большое! Да, отправка словаря, размер которого превышает 65,5 КБ, в качестве данных осложнений с помощью transferCurrentComplicationUserInfo: на WCSession не удается (никогда не поставлялся, iOS 9.2.1, watchOS 2.1) – ersjoh

+0

@ersjoh Итак, как вы отправляете большой словарь? http://stackoverflow.com/questions/42783611/userinfotransfer-payload-is-too-big – toast

+0

@AriX Итак, как вы отправляете большой словарь? http://stackoverflow.com/questions/42783611/userinfotransfer-payload-is-too-big – toast