How to clear webview history?

前端 未结 3 1606
青春惊慌失措
青春惊慌失措 2020-12-08 14:22

The history of webview is not clearing... What is wrong with below code?

Web view Creation

mWebViewReport=(WebView)findViewById(R.id.report_page);
mW         


        
3条回答
  •  情歌与酒
    2020-12-08 14:30

    The solution from Osama_Almaani works very fine! You can optimize your code by moving the flag into the WebViewClient implementation.

    Define a field in your activity and use this instead of the anonymous declaration:

    private MyWebViewClient myWebViewClient = new MyWebViewClient();
    ...
    myWebView.setWebViewClient(myWebViewClient);
    

    Enhance your WebViewClient class with a new method clearHistory():

    private class MyWebViewClient extends WebViewClient {
      private boolean clearHistory = false;
    
      /**Use this instead of WebView.clearHistory(). */
      public void clearHistory(){
        clearHistory = true;
        }
    
      @Override
      public void onPageFinished(WebView view, String url) {
        if(clearHistory){
          Log.d(TAG, "clearHistory now");
          clearHistory = false;
          myWebView.clearHistory();
        }
        super.onPageFinished(view, url);
        }
    }
    

    Now you can use this new method:

    myWebViewClient.clearHistory();
    mWebViewReport.loadUrl("file:///android_asset/help.html");
    

提交回复
热议问题