我有一个应用程序可以使用webview打开某些网页。如果有互联网连接,webview会打开某个网址并下载html文件。如果没有互联网连接,webview应该打开以前下载的html文件。
这就是我尝试这样做的方式:
webView.loadUrl(Environment.getExternalStorageDirectory().toString() + "/Android/data/com.whizzapps.stpsurniki/" + razred + ".html");
路径100%正确,但由于某种原因它仍然无法显示。我做了一些研究,我看到人们通常把下载的html文件放在assets文件夹中,但是我在应用程序中下载html文件,所以我不能真正访问assets文件夹。我该怎么办?
答案 0 :(得分: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();
}