操作栏后退按钮在WebView

时间:2016-03-26 08:36:34

标签: android-studio webview crash android-actionbar back-button

我目前正在实施一个后退按钮操作来导航webview历史记录。我的webview一直在工作(包括处理webview中的开放链接)。但是,添加后退按钮操作后,每当我尝试使用后退按钮时它都会崩溃。这是我的主要活动代码:

public class MainActivity extends Activity {

WebView mWebView;
//Back Button Code
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(event.getAction() == KeyEvent.ACTION_DOWN){
        switch(keyCode)
        {
            case KeyEvent.KEYCODE_BACK:
                if(mWebView.canGoBack() == true){
                    mWebView.goBack();
                }else{
                    finish();
                }
                return true;
        }

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


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(amapps.com.uhss.R.layout.activity_main);
     WebView mWebView = (WebView) findViewById(R.id.activity_main_webview);
    mWebView.setWebViewClient(new WebViewClient());

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(false);
    mWebView = (WebView) findViewById(R.id.activity_main_webview);
    mWebView.loadUrl("http://uhsswordandshield.com/");
    mWebView.getSettings().setSupportMultipleWindows(true);



}

有人可以告诉我代码有什么问题。我相信这与我的相关     WebView mWebView; 初始化webview之前的声明。但我不知道如何处理webview历史导航。此外,我不确定如何发布我的日志猫和发布什么,所以如果有人可以请告诉我我需要发布的logcat哪个部分会很棒。谢谢!

1 个答案:

答案 0 :(得分:0)

试试这段代码:

if((keyCode==KeyEvent.ACTION_DOWN)){

        if(mWebView.canGoBack() == true){
                mWebView.goBack();
            }else{
                finish();
            }

        return true;
    }

    return super.onKeyDown(keyCode, event);