如何在onBackPressed中使WebView上的后退按钮起作用?

时间:2019-05-13 09:10:30

标签: android

我在抽屉中有一些列表项,单击后会打开WebView。在我的MainActivity中,定义WebView

private WebView mWebView;

onCreate()中的

mWebView = new WebView(MainActivity.this);

点击该抽屉项目后,我将像这样打开WebView

setContentView(mWebView);
mWebView.loadUrl(...);

以上代码成功打开了WebView中的URL。为了从WebView返回,我在onBackPressed()中尝试了以下代码:

if (mWebView.canGoBack()) {
    mWebView.goBack();
}

但是什么也没发生。我还尝试将onBackPressed()中的其他代码放入else块中,但是每当我按回去时,else bloc中的代码就会触发,if部分永远不会做。因此,看来mWebView中的onBackPressed()没有得到认可。如何运作?

1 个答案:

答案 0 :(得分:2)

这是我的网络视图导航的工作方式。

public class MainActivity extends AppCompatActivity { 

    private WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        webView = new WebView(MainActivity.this);

        setContentView(webView);
        webView.loadUrl(...);

    }

    @Override
    public void onBackPressed() {
        if (webView != null && webView.canGoBack()) {
           webView.goBack();
        }
    }

}

您需要在onBackPressed()内添加后台处理程序 希望对您有帮助。