0
Warum gibt WebView canGoBack()
immer false zurück?Android - WebView canGoBack() gibt immer false zurück?
if (myWebView.canGoBack())
{ myWebView.goBack(); } //always false
onCreate:
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setBuiltInZoomControls(true);
myWebView.loadUrl(getString(R.string.base_url));
myWebView.setWebViewClient(new MyWebViewClient(progress));
MyWebviewClient:
public class MyWebViewClient extends WebViewClient {
private ProgressBar progressBar;
public MyWebViewClient(ProgressBar progressBar) {
this.progressBar=progressBar;
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
progressBar.setVisibility(View.VISIBLE);
share_btn.setVisibility(View.GONE);
back_btn.setVisibility(View.GONE);
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// TODO Auto-generated method stub
progressBar.setVisibility(View.GONE);
//hide loading image
findViewById(R.id.imageLogo).setVisibility(View.GONE);
//show webview
findViewById(R.id.websiteView).setVisibility(View.VISIBLE);
toolbar.setVisibility(View.VISIBLE);
currentURL = url.replace("mapp.","");
if(url.contains("article")) {
share_btn.setVisibility(View.VISIBLE);
back_btn.setVisibility(View.VISIBLE);
}
}
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (!Global.IsInternetConnected(MainActivity.this))
Toast.makeText(getApplicationContext(), "No internet connection!", Toast.LENGTH_SHORT).show();
else
view.loadUrl(url);
return true;
}
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (!Global.IsInternetConnected(MainActivity.this))
Toast.makeText(getApplicationContext(), "No internet connection!", Toast.LENGTH_SHORT).show();
else {
view.loadUrl(request.getUrl().toString());
}
return true;
}
}
Es funktioniert auf dem Emulator pixel_XL_API_25 in Ordnung, aber nicht funktioniert weder Samsung S6 noch Note3.
Warum denken Sie, es sollte ** nicht ** Rückkehr 'false'? –
Verwenden von Toast.makeText auf meinem Handy –
Das ist nicht der Grund, warum 'WebView' Methoden sollten nichts bestimmtes zurückgeben. –