我有一个带有CSS和jQuery的页面,在浏览器、Android浏览器和iOS设备中可以正常加载,但是Android Webview无法始终加载它。
我通过复制一些Webview JavaScript演示应用程序来缩小了问题范围,发现问题是它在加载时简单地跳过了JavaScript。为什么会这样呢?
以下是完整的测试HTML代码:http://pastebin.com/GmE2vEYx
这是我的调用方式:
myWebview.loadUrl("file:///android_asset/myPage.html");
myWebview.getSettings().setJavaScriptEnabled(true);
myWebview.setWebChromeClient(new WebChromeClient());
这三个调用的顺序不影响结果。
myWebview.getSettings().setJavaScriptEnabled(true);
myWebview.setWebChromeClient(new WebChromeClient());
myWebview.loadUrl("file:///android_asset/myPage.html");
我注意到的一件事是,如果你给它时间(通过在调试器中使用断点来暂停应用程序),那么javascript会更加稳定地加载。这引导我进行了一些牵强的实验,试图使应用程序加载得更慢,但这确实不是期望的用户体验。我真的希望Android webview不是移动开发的IE6。
其他事实:
如果删除包含所有Jquery的
<script>
标签,则页面将快速加载所有CSS格式。只要添加了Jquery,就什么都不加载。我还发现了几个遇到完全相同问题的问题,许多问题没有得到答复或没有得出OP所寻求的结论 :(
参见: Android:即使设置了setJavaScriptEnabled(true),也无法在WebView上使javascript正常工作 页面重新加载(Webview.loadUrl)导致Javascript未被(完全)处理
http://groups.google.com/group/android-developers/browse_thread/thread/9962064ef217a5a7#
在Android的Webview中,JavaScript有时无法正常工作
Android WebView无法加载JavaScript文件,但Android浏览器可以正常加载它
Android的Webview无法处理javascript?
有什么建议吗?让我们找到问题的根源! Android文档说Webview有限制,但我不知道这个限制在哪里,因为人们经常制作HTML CSS JS应用程序!