在Android的WebView.loadUrl方法中,Url的长度是否有任何限制?

时间:2011-02-19 15:34:12

标签: android webview

我想将本地资源“转移”到从远程服务器加载的页面。

我想做这样的事情:

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

这是为了节省带宽并减少加载时间。

如我所见,资产文件无法从远程网页加载......

3 个答案:

答案 0 :(得分:3)

看起来没有限制或者非常大。我用简单的代码完成了一些测试

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 :(得分:1)

您可以阅读here webView.loadUrl("javascript:wave()");调用 JS方法,而不是将其注入HTML页面。也许您想使用webView.loadData()webView.loadDataWithBaseURL()方法?或者我误解了你?

答案 2 :(得分:-1)

默认情况下,loadURL会生成一个限制为254个字符的get请求。这就是问题所在。