WebView - 如果存在历史记录,则只显示后退按钮

WebView - only show back button if back history exists

我开发了一个简单的 webview 应用程序。我添加了一个用作后退按钮的按钮,以便用户可以返回一页。

该按钮最初是隐藏的,只有在存在历史记录时才会显示。 我怎样才能意识到这一点?

代码很简单:

backButton = findViewById(R.id.backButton);
backButton.setEnabled(blizzView.canGoBack());

但是我必须在哪里调用它呢? "some site loaded" 事件是如何调用的?

更新:

我尝试应用@Murats 的答案,但没有任何反应:

private WebView blizzView;  // my webview
private Button backButton;

public void onPageFinished(WebView view, String url)
{
    backButton = findViewById(R.id.backButton);
    backButton.setEnabled(blizzView.canGoBack());

    if (blizzView.canGoBack()) {
        backButton.setVisibility(View.VISIBLE);
    } else {
        backButton.setVisibility(View.INVISIBLE);
    }

}

您可以使用WebView#canGoBack to find out if there is a backstack. You can check for that after the page is loaded e.g. in WebViewClient#onPageFinished

它是这样工作的:

blizzView.setWebViewClient(new WebViewClient() {      //
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        backButton = findViewById(R.id.backButton);
        backButton.setEnabled(blizzView.canGoBack());

        if (blizzView.canGoBack()) {
            backButton.setVisibility(View.VISIBLE);
        } else {
            backButton.setVisibility(View.INVISIBLE);
        }

    }
});