0

我有一个应用程序可以使用 webview 打开某些网页。如果有互联网连接,webview 会打开某个 url 并下载 html 文件。如果没有网络连接,webview 应该会打开之前下载的 html 文件。

这就是我尝试这样做的方式:

webView.loadUrl(Environment.getExternalStorageDirectory().toString() + "/Android/data/com.whizzapps.stpsurniki/" + razred + ".html");

路径是 100% 正确的,但由于某种原因它仍然不会显示。我做了一些研究,发现人们通常将下载的 html 文件放在 assets 文件夹中,但我在应用程序中下载 html 文件,所以我真的无法访问 assets 文件夹。我该怎么办?

4

1 回答 1

0

您可以改用 loadData ,但您需要先读取文件:

data = readFile(Environment.getExternalStorageDirectory().toString() + "/Android/data/com.whizzapps.stpsurniki/" + razred + ".html");
webView.loadData(data, "text/html; charset=UTF-8", null);
//or 
//webView.loadDataWithBaseURL(null, result, "text/html; charset=UTF-8", null, null);

这是一个读取文件的函数

private String readFile(String path) throws IOException
{
    StringBuilder sb = new StringBuilder();
    BufferedReader br = new BufferedReader(new FileReader(path));
    try
    {
        String line = null;
        while ((line = br.readLine())!=null)
        {
            sb.append(line);
        }
    }
    finally
    {
        br.close();
    }
    return sb.toString();
}
于 2013-09-09T17:03:09.993 回答