Подтвердить что ты не робот

Максимальная максимальная длина URL-адреса

В соответствии с заголовком, какова максимальная длина URL-адреса при использовании настраиваемой схемы URL-адреса с приложением?

например. Если я запускаю другое приложение по URL-адресу и передаю капли данных, используя что-то вроде

myappscheme://некоторый/путь данных = 0123456789abcdef

как долго эта строка может быть получена до того, как URL-адрес отключится (или система вообще откажется запускать другое приложение)?

4b9b3361

Ответ 1

К сожалению, ответ кажется недоступным. Макс len не определен конкретно в любой документации iOS, которую я мог найти.

Существуют ограничения, как указано выше ссылкой MSK, для длины URL-адреса URL-адреса, а не абсолютной длины строки URL-адреса. Так что, вероятно, это безопасная ставка для макс, около 2000 символов.

Однако при тестировании, казалось, не было верхнего предела. Я смог использовать 365 535 URL-адресов на iOS без проблем. Но нет необходимости в том, чтобы яблоко продолжало поддерживать его, поэтому оно "использует на свой страх и риск". Однако я бы сказал, что, основываясь на том, что многие, многие приложения используют это для передачи информации, включая большие объемы данных между приложениями, Apple, вероятно, продолжит ее поддерживать, поскольку, по-видимому, нет причин уменьшать длину.

Ответ 2

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

Вы можете видеть, что существует ограничение на длину пути или имени файла. Вы можете проверить их в syslimits.h.

#define NAME_MAX          255   /* max bytes in a file name */
#define PATH_MAX         1024   /* max bytes in pathname */

Вы можете зарегистрировать их и сами увидеть:

NSLog(@"PATH MAX VALUE: %i", PATH_MAX)

Контуры ограничены 1024 байтами или 1024 символами в UTF-8. Имена файлов в путях ограничены 255 байтами или 255 символами в UTF-8.

Я столкнулся с этой проблемой, пытаясь разобраться с файлами, закодированными японскими символами (которые значительно удлиняют URL/имена). Мое единственное решение - обрезать имя на данный момент.

Здесь вы можете увидеть на этой странице поддержки Apple, что они говорят о том, как некоторые языки (например, корейские или японские) имеют символы, которые занимают больше байтов и вызывают проблемы (они на самом деле не обеспечивают хороший способ справиться с этой проблемой хотя):

https://support.apple.com/en-is/HT202808

Ответ 3

Ссылка http://en.wikipedia.org/wiki/URI_scheme:

Название схемы состоит из последовательности символов, начинающихся с буквы и сопровождаемых любой комбинацией букв, цифр, плюс ( "+" ), периода ( "." ) или дефиса ( "-" ). Хотя схемы не чувствительны к регистру, каноническая форма является строчной, а документы, которые указывают схемы, должны делать это с помощью строчных букв. За ним следует двоеточие ( ":" ).

Нет ничего о длине.

Ответ 4

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