Atul Dhanuka
Atul Dhanuka

Reputation: 1463

How to clear all the history Webview in WebAppInterface

I try to clear all the history in WebView at WebAppInterface but it is not getting clear.

Code:-

    wvList = (WebView) view.findViewById(R.id.wv);
    wvList .setHorizontalScrollBarEnabled(false);
    wvList .getSettings().setJavaScriptEnabled(true);
    wvList .getSettings().setDomStorageEnabled(true);
    wvList .addJavascriptInterface(new WebAppInterface(mContext), "Android");
    wvList .setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(request.getUrl().toString());
            return false;
        }
    });



public class WebAppInterface {
    Context mContext;

    /**
     * Instantiate the interface and set the context
     */
    WebAppInterface(Context cxt) {
        mContext = cxt;
    }

    /**
     * Show a SnackBar from the web page
     */
    @JavascriptInterface
    public void showMessage(String msg) {
        wvList .post(new Runnable() {
        @Override
        public void run() {
            wvList .clearHistory();// Not working
            wvList .loadURL(url.toString);
        }
    });
    }
}

Only in showMessage I want to clear all the history of webview so that in back press it will not go to previous page.

Upvotes: 1

Views: 2220

Answers (1)

user5512025
user5512025

Reputation: 76

try override this function in WebViewClient

@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
    super.doUpdateVisitedHistory(view, url, isReload);
    if (needClearHistory) { 
        needClearHistory = false;
        webview.clearHistory();
    }
}

Upvotes: 5

Related Questions