我的WebView无法呈现存储在包含脚本src(以及CSS路径)的assets
文件夹中的html文件,例如
<script type="text/javascript" src="file:///android_asset/emergency.js"></script>
它显示白屏 任何想法如何解决?
我已经阅读了其他答案,但似乎没有一个适合我的情况。
以下是来自MainActivity.java的代码
WebView browser = (WebView) this.findViewById(R.id.webView);
String html = "file:///android_asset/file.html";
browser.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", "");
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setSupportZoom(false);
browser.getSettings().setBuiltInZoomControls(true);
browser.getSettings().setDisplayZoomControls(false);
try {
browser.loadUrl(html);
} catch (Exception e) {
e.printStackTrace();
}
答案 0 :(得分:1)
如果文件位于同一位置,则html文件将自动确定文件位置。所以使用相对路径,但不是绝对。
http://www.coffeecup.com/help/articles/absolute-vs-relative-pathslinks/
答案 1 :(得分:0)
而不是:
<script type="text/javascript" src="file:///android_asset/emergency.js"></script>
只需在HTML文件中执行此操作:
<link rel="stylesheet" type="text/css" href="styles.css" />
<script type="text/javascript" src="scripts.js"></script>
因为HTML文件对您的assets
文件夹一无所知
但它很容易在同一目录中找到文件。
略过这一行:
browser.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", "");
然后使用
browser.loadUrl("file:///android_asset/file.html");