[英]Cannot load JavaScript and CSS files from assets into an html in a WebView
我的WebView无法呈现存储在assets
文件夹中的html文件,该文件包含脚本src(以及CSS路径),例如
<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();
}
如果文件位于同一位置,则html文件将自动确定文件位置。 因此,请使用相对路径,但不要使用绝对路径。
http://www.coffeecup.com/help/articles/absolute-vs-relative-pathslinks/
代替这个:
<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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.