0

我之前问过一个关于将存档文件加载到 WebView 的类似问题。

根据教程,我必须将存档文件加载到 InputStream,以便我可以使用 WebArchiveReader.java 中的 loadToWebView 方法。

但是,在教程中,作者使用以下语句获取存档文件:

InputStream is = getAssets().open("TestHtmlArchive.xml");

不幸的是,我想从“资产”文件夹以外的其他地方获取存档文件。

WebView webView = (WebView) rootView.findViewById(R.id.webview_layout);
String url = "http://www.yahoo.com";
webView.loadUrl(url);
String path = getFilesDir().getAbsolutePath() + File.separator + "yahoo" + ".html";
webView.saveWebArchive(path);
webView.loadUrl("file://" + path);

假设我想加载上面代码中保存的文件“yahoo.html”。

我怎样才能把它放到 InputStream 的实例中?

4

1 回答 1

1

似乎打开文件到 InputStream 的正确方法如下所示。

            String path = getFilesDir().getAbsolutePath() + File.separator
                    + "yahoo" + ".html";

            File file = new File(path);

            try {
                InputStream is = new BufferedInputStream(new FileInputStream(file));

                WebArchiveReader wr = new WebArchiveReader() {

                    @Override
                    public void onFinished(WebView webView) {
                        System.out.println("Page loaded");
                    }
                };

                if (wr.readWebArchive(is)) {
                    wr.loadToWebView(webView);
                }

            } catch (IOException e) {
                e.printStackTrace();
            }
于 2013-01-23T23:27:02.570 回答