我想将本地资源“转移”到从远程服务器加载的页面。
我想做这样的事情:
webView.loadUrl('http://my.server.com/page.html');
webView.loadUrl('javascript:function someLong(){}function codeHere(){}....');
这是为了节省带宽并减少加载时间。
如我所见,资产文件无法从远程网页加载......
答案 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请求。这就是问题所在。