Webview无法使用本地html返回

时间:2013-07-27 11:14:40

标签: android webview

我有一个从互联网加载URL的webview,但是当没有连接(onReceiedError)时,它会在assets文件夹中加载一个本地保存的html文档。

但是当我按下该特定活动的后退按钮(加载本地HTML)时,它不会返回上一个活动而是尝试刷新页面..只有在4-5后按下它才会回来。

这是我的代码。

private class HelloWebViewClient extends WebViewClient{    
         @Override
            public void onReceivedError(WebView view, int errorCode,                
                    String description, String failingUrl) {
             mWebView.getSettings().setBuiltInZoomControls(false);  
                mWebView.getSettings().setLoadWithOverviewMode(false); 
                mWebView.getSettings().setUseWideViewPort(false);   
             mWebView.loadUrl("file:///android_asset/offline.html"); 
         }


        public boolean shouldOverrideUrlLoading(WebView webview, String url)
        {
            webview.loadUrl(url);
            return true;

        }
    }

    @Override
    public boolean onKeyDown(int KeyCode, KeyEvent event)
    {
        if ((KeyCode)== KeyEvent.KEYCODE_BACK && mWebView.canGoBack())   
        {
            mWebView.goBack();
            return true;

        }
        return super.onKeyDown(KeyCode, event);
    }

    @Override
    public void onBackPressed() 
    {
        this.finish();
        overridePendingTransition  (0, R.anim.right_slide_out);
        return;
    }
    }

正常网页可以正常上网加载。

1 个答案:

答案 0 :(得分:0)

因为onReceivedError你改变了网址。所以不会有goback事件

您必须只显示Toast消息并删除mWebView.loadUrl("file:///android_asset/offline.html");