2 ssummeraw ssummeraw 于 2012.11.29 11:47 提问

在webview中打开一个本地的html文件

在一个根文件夹中保存了一个文件,我想在webview中打开它。
这是我保存文件的代码:

 OutputStream outstream = null;

                 outstream = openFileOutput(fileName ,MODE_WORLD_READABLE);


                       if (outstream != null) {

                    OutputStreamWriter outputreader = new OutputStreamWriter(outstream);
                    BufferedWriter buffwriter = new BufferedWriter(outputreader);


                    buffwriter.write(result);

                  } 

                  outstream.close();

                } catch (java.io.FileNotFoundException e) {
                    System.out.println("File not found in the writing...");
                } catch (IOException e) {
                    System.out.println("In the writing...");
                }

然后又回调文件:

fileView.getSettings().setJavaScriptEnabled(true);
 fileView.loadUrl("file:///" + name); <---

然后程序中我就获得错误提示说不能找到这个文件。
是代码方面出现问题了吗?

3个回答

csh_34
csh_34   2012.12.04 13:27
已采纳

事实上,当你打开一个URL时,要使用file:///...
也就是说你应该在assets目录(test.html)下保存文件。现在假设你需要访问test.html文件,你应该这样写:loadURL("file:///android_asset/test.html');

CSDN_Ask
CSDN_Ask   2012.11.29 13:44

试一下这个方法:

WebView mWebView=(WebView)findViewById(R.id.mWebView);

            mWebView.loadUrl("file:///book.html");
            mWebView.getSettings().setJavaScriptEnabled(true);
            mWebView.getSettings().setSaveFormData(true);
            mWebView.getSettings().setBuiltInZoomControls(true);
            mWebView.setWebViewClient(new MyWebViewClient());

private class MyWebViewClient extends WebViewClient 
{ 
    @Override 
    //在webview中显示web页面,但不是在web浏览器
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        view.loadUrl (url); 
        return true;
    }
}
avenccssddnn
avenccssddnn   2017.11.27 16:31

事实上,当你打开一个URL时,要使用file:///...
也就是说你应该在assets目录(test.html)下保存文件。现在假设你需要访问test.html文件,你应该这样写:loadURL("file:///android_asset/test.html');

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!