【问题标题】:WebView back button issue in androidandroid中的WebView后退按钮问题
【发布时间】:2013-02-05 05:44:50
【问题描述】:

我正在使用 WebView 在应用程序中显示 url。当我单击设备中的后退按钮时,它会终止并关闭应用程序。例如:我将链接作为

w.loadUrl("http://www.google.com");

我正在搜索,它会转到 webview 中的下一页。但是当我点击返回时

按钮键,它会关闭应用程序,而不是返回我搜索的历史记录。

如何解决这个问题。?这里面有什么要给的,如果有,应该给什么?

@Override
public void onBackPressed() { }

提前致谢。

【问题讨论】:

    标签: android android-layout android-intent android-widget android-webview


    【解决方案1】:

    如果您想在 webview 中浏览您的历史记录,请将以下代码添加到您的 webview 活动中

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

    【讨论】:

      【解决方案2】:

      你可以看到链接或下面的代码:-

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

      @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);
      }
      

      【讨论】:

        【解决方案3】:

        在这种情况下,您需要通过此代码覆盖后退按钮,您可以覆盖后退按钮

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {                                              
            if (keyCode == KeyEvent.KEYCODE_BACK)  {
                 moveTaskToBack(true);
                 return true;
            }
            return super.onKeyDown(keyCode, event);
        }
        

        【讨论】:

          【解决方案4】:

          你可以使用下面的代码,它对我有用。

          @Override
          public boolean onKeyUp(int keyCode, KeyEvent event) {
              if (Integer.valueOf(android.os.Build.VERSION.SDK) < 7 
                      && keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                  // Take care of calling this method on earlier versions of
                  // the platform where it doesn't exist.
                  onBackPressed();
              }
              return super.onKeyUp(keyCode, event);
          }
          
          @Override
          public void onBackPressed() {
              return;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多