Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to clear webview history?

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

Web view Creation

mWebViewReport=(WebView)findViewById(R.id.report_page); mWebViewReport.setWebViewClient(new HelloWebViewClient()); mWebViewReport.getSettings().setBuiltInZoomControls(true); 

Load help file when help button click

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

load Summary file when summary button click

  mWebViewReport.loadUrl("file:///android_asset/summary.html");      //On back button click      if (mWebViewReport.canGoBack()) {             mWebViewReport.goBack();             return ;       } 

Here i can see the Help page too...

like image 613
vnshetty Avatar asked Nov 12 '11 09:11

vnshetty


People also ask

How do I close WebView on Android?

Add a close button and on its click set: webview. setVisibility(View. INVISIBLE); webview.

What is WebView activity?

Android WebView is used to display web page in android. The web page can be loaded from same application or URL. It is used to display online content in android activity. Android WebView uses webkit engine to display web page.

How do I exit WebView?

If you have only 1 activity you can simply start the service and then call finish() on the activity. However, if you have multiple activities you have to make sure that you close them all (see also this post).

What is the use of WebView in android?

The WebView class is an extension of Android's View class that allows you to display web pages as a part of your activity layout. It does not include any features of a fully developed web browser, such as navigation controls or an address bar. All that WebView does, by default, is show a web page.


2 Answers

You can't clear history while the webview is loading a page (url) in order to clear the history setup onPageFinished listener as follows

declare a public var before the onCreate

boolean clearHistory = false; 

now when you declare your mWebViewReport set this up

mWebViewReport.setWebViewClient(new WebViewClient(){      @Override     public void onPageFinished(WebView view, String url)      {         if (clearHistory)         {             clearHistory = false;                     mWebViewReport.clearHistory();         }             super.onPageFinished(view, url);     } }); 

Now when you call your help url insted of clearing the history just set clearHistory to true

mWebViewReport.loadUrl("file:///android_asset/help.html"); mWebViewReport.clearHistory();  // REMOVE THIS LINE mWebViewReport.clearCache(true); // REMOVE THIS LINE clearHistory = true; // ADD THIS LINE 
like image 87
Osama_Almaani Avatar answered Sep 27 '22 18:09

Osama_Almaani


I think, clearHistory() clears the back and forward list. So the currently loaded url will still remain in the back list.

like image 35
abhinav Avatar answered Sep 27 '22 18:09

abhinav