【问题标题】:Cannot load JavaScript and CSS files from assets into an html in a WebView无法将资产中的 JavaScript 和 CSS 文件加载到 WebView 中的 html 中
【发布时间】:2015-11-24 18:16:14
【问题描述】:

我的 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();
        }

【问题讨论】:

    标签: java android html webview assets


    【解决方案1】:

    如果文件位于同一位置,则 html 文件将自动确定文件位置。所以使用相对路径,而不是绝对路径。

    http://www.coffeecup.com/help/articles/absolute-vs-relative-pathslinks/

    【讨论】:

      【解决方案2】:

      而不是这个:

      <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");
      

      【讨论】:

      • 它说关于 file.html 的 net::ERR_FILE_NOT_FOUND
      • 显然,您需要使用与您相同的文件名。我在 my 的情况下工作,因为我在 assets 文件夹中有这样的文件,只要引用它们的 html 即可。将我的代码作为一个通用示例,但要根据您的具体情况进行调整。
      • 我也有资产文件夹中的所有文件。但它不起作用
      • 那么在html中你必须正确引用它们。 href="your.css"src="your.js" - 不要在文件名前添加任何路径。
      • 我编辑了我的答案 - 您似乎没有正确加载 HTML 文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 2012-09-05
      • 2017-11-04
      • 1970-01-01
      相关资源
      最近更新 更多