I have a problem with Android Web View. When I override the shouldOverrideUrlLoading function in my class that extends WebViewClient, then WebView.canGoBack() always returns false .
Below is my code
public class SMWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { view.loadUrl(request.getUrl().toString()); return true; } @Override public boolean shouldOverrideUrlLoading(WebView view, String uri) { view.loadUrl(uri); return true; } }
And in my activity:
@BindView(R.id.main_webview) SMWebView webView; @Override protected void onCreate(Bundle savedInstanceState) { ... webView.setWebViewClient(new SMWebViewClient(){ @Override public void onPageFinished(WebView view, String url){ } }); webView.clearCache(true); webView.clearHistory(); webView.loadUrl(Constant.baseUrl + Constant.homeUrl); }
The problem is that the webView.canGoBack function (always in my activity) always returns false :
@Override public void onBackPressed() {
If I do not override shouldOverrideUrlLoading, then onBackPressed works as expected. What is wrong in my code?
thanks
[EDIT]: I also tried (without success) to create a webViewClient this way:
ebView.setWebViewClient(new SMWebViewClient());
fciri source share