如何使用webview从手机内存中读取本地html文件?

时间:2014-01-18 06:15:30

标签: android html webview local

我需要创建一个apk文件,其中webview将加载不在assets文件夹中的html5文件。 html5文件位于手机记忆库中。这是我的代码。

private WebView web;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    web = (WebView) findViewById(R.id.webV);
    web.setWebViewClient(new myWebClient());
    web.getSettings().setJavaScriptEnabled(true);
    web.getSettings().setLoadWithOverviewMode(true);
    web.getSettings().setUseWideViewPort(true);
    String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "Download/index.html";
    web.loadUrl(url);
}

public class myWebClient extends WebViewClient
{
     @Override
     public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
         handler.proceed(); // Ignore SSL certificate errors
     }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub

        view.loadUrl(url);
        return true;

    }
}

// To handle "Back" key press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
        web.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

它没有读取我在代码中指出的路径。你能告诉我什么是错的吗?

谢谢。

0 个答案:

没有答案