Есть ли ограничение на длину URL в методе Android WebView.loadUrl? - PullRequest
4 голосов
/ 19 февраля 2011

Я хочу «перенести» локальные ресурсы на страницу, загруженную с удаленного сервера.

Я хочу сделать что-то вроде этого:

webView.loadUrl('http://my.server.com/page.html');
webView.loadUrl('javascript:function someLong(){}function codeHere(){}....');

Это для экономии полосы пропускания и сокращения времени загрузки.

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

Ответы [ 3 ]

3 голосов
/ 03 марта 2011

Похоже, что нет предела или он очень большой.Я провел несколько тестов с простым кодом

webView.loadUrl(
    "javascript:function a(s){alert(s.length + ' ' + s.substring(s.length-5))}");
String repeated = 
    String.format(String.format("%%0%dd", 80000), 0).replace("0", ".") + "xx";
webView.loadUrl("javascript:a('"+repeated+"')");

Первая строка: определить функцию, вторая строка - подготовить длинную строку, третья - вызвать определенную функцию с очень длинным строковым аргументом.

Работает отлично.В результате я увидел предупреждение JS: «80002 ... xx»

1 голос
/ 02 марта 2011

Как вы можете прочитать здесь webView.loadUrl("javascript:wave()"); только вызывает методы JS, а не внедряет их в HTML-страницу. Может быть, вы хотите использовать webView.loadData() или webView.loadDataWithBaseURL() методы? Или я тебя неправильно понял?

0 голосов
/ 19 февраля 2011

По умолчанию loadURL делает запрос на получение, который имеет ограничение в 254 символа.Вот почему проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...