I have a problem with Android Web View.
When I override the function shouldOverrideUrlLoading in my class that extends WebViewClient then WebView.canGoBack()
returns always 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 the 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 function webView.canGoBack
(always in my activity) returns always false
:
@Override
public void onBackPressed() {
//ALWAYS FALSE
if (webView.canGoBack()) {
webView.goBack();
}
}
If I don't override shouldOverrideUrlLoading, than onBackPressed works as expected. What is wrong in my code?
Thanks
[EDIT]: I also tried (without success) to create webViewClient in this way:
ebView.setWebViewClient(new SMWebViewClient());
There seems to be a problem with current release of Chrome (63+). I downloaded Chrome Dev (65+), change the default webview to Chrome Dev 65+, the webview.canGoBack() works fine.
Here is some reading of bug reported: https://bugs.chromium.org/p/chromium/issues/detail?id=794020
Chrome Dev download URL: https://play.google.com/store/apps/details?id=com.chrome.dev
Changing default webview: https://www.chromium.org/developers/androidwebview/android-webview-beta
Looks like we need to wait for somewhile for the new Chrome stable update.
Do not load the url everytime in the WebClient
this clears the past history of the WebView
and also check how you extended the WebView
to your own SMWebView
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With