后退按钮将我从WebView上的应用程序中踢出来

时间:2015-11-05 14:07:41

标签: java android webview

我正在开发一个基于Javascript的网络应用程序,并认为我可以使用Android的WebView能力使其像真正的应用程序一样,所以我直接进入Android Studio并做了一个简单的WebView应用程序没有任何Java知识,但问题是,在页面转换之间,每当我想返回并点击后退按钮时,应用程序自行关闭。我找到了一些解决方案,但我不知道如何正确实施它们,所以你能帮我吗?以下是我的WebView的FullscreenActivity.java代码。

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);

    WebView view = (WebView) this.findViewById(R.id.webView);
    view.getSettings().setJavaScriptEnabled(true);
    view.setWebViewClient(new ZeroBrowser());
    view.loadUrl("http://www.google.com");
}

private class ZeroBrowserOverride extends WebViewClient implements ZeroBrowserOverride {

    @Override
    public boolean ShouldOverrideUrlLoading(WebView view, String Url){
        view.loadUrl(Url);
        return true;
    }
}

非常感谢你!

3 个答案:

答案 0 :(得分:2)

你可以试试这个。

WebView view ; //Global    

  @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);

        view = (WebView) this.findViewById(R.id.webView);
                view.getSettings().setJavaScriptEnabled(true);
        view.setWebViewClient(new ZeroBrowser());
        view.loadUrl("http://www.google.com");
    }

然后

 @Override
public void onBackPressed() {
    if (view.canGoBack()) {
        view.goBack();
    } else {
        super.onBackPressed();
    }
}
  

How to go back to previous page if back button is pressed in WebView?

     

http://developer.android.com/intl/es/guide/webapps/webview.html

答案 1 :(得分:1)

您可以查看客户历史记录,以便在webview中返回。实现这样的东西:

@Override
public void onBackPressed() {
  if (mWebView.canGoBack()) {
      mWebView.goBack();
  } else {
      super.onBackPressed();
  }
}

答案 2 :(得分:1)

在WebView类中(或在父视图中)覆盖侦听器:

@Override
public boolean onKeyDown(final int keyCode, final KeyEvent event) {
    // Check if the key event was the Back button and if there's history
    if ((keyCode == KeyEvent.KEYCODE_BACK) && this.canGoBack()) {
        this.goBack();
        return true;
    }
    // If it wasn't the Back key or there's no web page history, bubble up to the default
    // system behavior (probably exit the activity)
    return super.onKeyDown(keyCode, event);
}