0

WebView で特定の Web ページを開くアプリがあります。インターネット接続がある場合、webview は特定の URL を開き、html ファイルをダウンロードします。インターネット接続がない場合、webview は以前にダウンロードした html ファイルを開くことになっています。

これは私がそれをやろうとしている方法です:

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

パスは 100% 正しいですが、何らかの理由で表示されません。いくつかの調査を行ったところ、ダウンロードした html ファイルは通常、アセット フォルダーに配置されることがわかりましたが、アプリケーション内で html ファイルをダウンロードしているため、アセット フォルダーに実際にアクセスすることはできません。私は何をすべきか?

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 に答える