WebView上的WebView clearHistory()是否具有Goback()功能?

gER*_*ave 6 java android webview

  1. 我正在尝试使用历史记录作为检查来退出应用程序.主页按钮将页面重新加载到google.com,但即使在我调用.clearHistory()之后仍然保留页面历史记录.

  2. 以下是菜单处理/选择的代码:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
      // Handle item selection
      switch (item.getItemId()) {
        case R.id.Home:
          mWebview.loadUrl("http://google.com");
          mWebview.clearHistory();
          return true;
        case R.id.About:
          Toast.makeText(this, "TEXT", Toast.LENGTH_SHORT).show();
        return true;
        default:
          return super.onOptionsItemSelected(item);
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 这是Exit函数的代码:

    @Override
    public void onBackPressed() {
      if (mWebview.canGoBack()) {
        mWebview.goBack();
      }
      else {
        super.onBackPressed();
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

Liz*_*zom 21

根据这篇文章,你需要在页面加载完成后调用clearHistory:

似乎历史记录清除当前页面之前的所有内容,因此如果您的浏览器位于页面"A",则清除历史记录并导航到页面"B",您的历史将是"A""B",而不仅仅是"B",但是如果您在"B"完成加载时清除历史记录,则只有"B"

因此,不应该clearHistory在之后调用loadUrl,而应该从onPageFinished或调用它onProcessChanged.