Ich habe eine App, in der ich ein WebView habe, wo ich einige Websites anzeigen. Es funktioniert, indem Sie auf einen Link in der Webseite klicken, um zur nächsten Seite auf der Website innerhalb meiner App zu gelangen. Aber wenn ich auf den Zurück-Button des Telefons klicke, kann ich direkt in meine App gelangen. Ich möchte stattdessen zur vorherigen Seite auf der Website zurückkehren. Wie kann ich das machen?Warum funktioniert die Zurück-Taste nicht mit diesem Code?
Hier ist mein Code.
public class WebView extends AppCompatActivity {
private android.webkit.WebView webView;
private ProgressBar progressBar;
private LinearLayout layoutProgress;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.webview);
webView = (android.webkit.WebView) findViewById(R.id.webViewMain);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
layoutProgress = (LinearLayout) findViewById(R.id.layoutProgress);
webView.setVisibility(View.GONE);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setSupportZoom(true);
settings.setDisplayZoomControls(false);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(android.webkit.WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(android.webkit.WebView view, String url) {
webView.setVisibility(View.VISIBLE);
layoutProgress.setVisibility(View.GONE);
progressBar.setIndeterminate(false);
super.onPageFinished(view, url);
}
@Override
public void onPageStarted(android.webkit.WebView view, String url, Bitmap favicon) {
layoutProgress.setVisibility(View.VISIBLE);
progressBar.setIndeterminate(true);
super.onPageStarted(view, url, favicon);
}
});
if (isOnline()) {
webView.loadUrl("http://www.**********.com/ ");
} else {
String summary = "<html><body><font color='red'>No Internet Connection</font></body></html>";
webView.loadData(summary, "text/html", null);
toast("No Internet Connection.");
}
}
private void toast(String message) {
Toast.makeText(WebView.this, message, Toast.LENGTH_LONG).show();
}
private boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
return (netInfo != null && netInfo.isConnected());
}
@Override
public void onBackPressed() {
if(webView.canGoBack() == true) {
webView.goBack();
} else {
WebView.super.onBackPressed();
}
}
}
Folgen Sie dieser Frage: http://stackoverflow.com/questions/6077141/how-to-go-back-to-vorherige-Seite-wenn-zurück-Taste-ist-gedrückt-in-webview –
Ich schlage vor, Sie nicht die gleiche Frage, danke zu posten. –
Frage gleich, aber einige Code ist anders –