在webView android中加载本地html文件

时间:2014-01-01 22:01:13

标签: android html file webview local

我必须将现有的html文件加载到位于文件系统中此路径的WebView中:

/data/data/com.example.example/files/file.html

但是,当WebView加载它时,我什么也看不见。 谁能帮我?

WebView代码(假设路径是我上面写的路径):

 WebView webView = (WebView)findViewById(R.id.webView1);

  File htmlFile = new File(path);
    if(htmlFile.exists())
    {
        webView.loadUrl(htmlFile.getAbsolutePath());

    }

4 个答案:

答案 0 :(得分:43)

尝试此操作,添加file:///并执行一些不同的操作:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///data/data/com.example.example/files/file.html");  

但是,您可以将文件放入源代码中的assets文件夹中,然后执行此操作,而不是这样做:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///android_asset/file.html");

答案 1 :(得分:22)

html文件应放在assets文件夹中,该文件夹属于项目的根目录。

所以在eclipse的情况下移动你的文件

assets/index.html

在Android Studio项目中使用此文件夹:

/app/src/main/assets/index.html

现在使用

WebView wv= (WebView)findViewById(R.id.webView1);
wv.loadUrl("file:///android_asset/index.html");

答案 2 :(得分:6)

您需要实现ContentProvider以将本地文件映射到uris,如此链接中所述how to display a local file into Android Webview

或者您只需从Assets文件夹中加载任何html页面,如下所示:

 WebView wv= (WebView)findViewById(R.id.webView1);
 wv.loadUrl("file:///android_asset/yourfile.html");
 wv.getSettings().setJavaScriptEnabled(true);

答案 3 :(得分:0)

试试这个:

web = (Webview) findViewById(R.id.webview);
web.setWebClient(new WebViewClient());
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setAllowFileAccess(true);
web.getSettings().setAllowFileAccessFromFileURLs(true);