将index.html从资产加载到WebView中,但是找不到index.html中引用的其他文件

时间:2019-07-12 14:36:09

标签: android webview

问题

我能够使用index.html从本地WebView目录中的assets文件中成功加载webView.loadUrl("file:///android_asset/www/index.html);文件

该页面保持白色,并且在chrome调试控制台中出现js错误,该错误指出*.js中链接的*.cssindex.html文件无法被发现。 Filed to load resource: net:: ERR_FILE_NOT_FOUND

信息

WebView设置

webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

WebView还具有自定义的WebChromeClient和WebViewClient。

index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8"/>
       ...
       <link rel="stylesheet" href="styles.css">
       ...
    </head>

    <body>
      <app-root></app-root>
      ...
      <script type="text/javascript" src="runtime.js"> 
 </script>
      ...
    </body>

    </html>

我的www目录中有一个assets目录,其中包含我的网站内容。

目录结构:

  • 资产
    • www
      • index.html
      • *。js(许多js文件)
      • styles.css

所有文件都与index.html位于同一目录中,所以我不确定为什么找不到这些文件。

Android WebView是否存在引起此错误的东西?我在这里茫然。

1 个答案:

答案 0 :(得分:1)

我曾经遇到过同样的问题。我已经添加了完整的路径,并且可以正常工作。请添加路径,

<!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8"/>
       ...
       <link rel="stylesheet" href="file:///android_asset/www/styles.css">
       ...
    </head>

    <body>
      <app-root></app-root>
      ...
      <script type="text/javascript" src="file:///android_asset/www/runtime.js"> 
 </script>
      ...
    </body>

    </html>

以及所有其他文件。