繁体   English   中英

无法将素材资源中的JavaScript和CSS文件加载到WebView中的html中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM