Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to go back to previous page if back button is pressed in WebView?

I have an app in which I have a WebView where I display some websites. It works, clicking a link in the webpage goes to the next page in the website inside my app. But when I click the phone's back button, it takes me straight into my app. I want to go back to the previous page in the website instead. How can I do this?

Here is the code sample I'm using:

public class Webdisplay extends Activity {      @Override     public void onCreate(Bundle savedInstanceState) {         // TODO Auto-generated method stub         super.onCreate(savedInstanceState);          this.getWindow().requestFeature(Window.FEATURE_PROGRESS);         setContentView(R.layout.webdisplay);          getWindow().setFeatureInt(Window.FEATURE_PROGRESS,                 Window.PROGRESS_VISIBILITY_ON);           Toast loadingmess = Toast.makeText(this,                 "Cargando El Diario de Hoy", Toast.LENGTH_SHORT);         loadingmess.show();          WebView myWebView;          myWebView = (WebView) findViewById(R.id.webview);         myWebView.getSettings().setJavaScriptEnabled(true);         myWebView.loadUrl("http://www.elsalvador.com");         myWebView.setWebViewClient(new WebViewClient());         myWebView.setInitialScale(1);         myWebView.getSettings().setBuiltInZoomControls(true);         myWebView.getSettings().setUseWideViewPort(true);          final Activity MyActivity = this;         myWebView.setWebChromeClient(new WebChromeClient()          {             public void onProgressChanged(WebView view, int progress)                {                 MyActivity.setTitle("Loading...");                 MyActivity.setProgress(progress * 100);                   if(progress == 100)                     MyActivity.setTitle(R.string.app_name);             }         });     } } 
like image 631
zvzej Avatar asked May 20 '11 20:05

zvzej


People also ask

How do I go back in Webview?

This example demonstrate about How to enable back button in android webview. Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main.


1 Answers

I use something like this in my activities with WebViews:

@Override public boolean onKeyDown(int keyCode, KeyEvent event) {     if (event.getAction() == KeyEvent.ACTION_DOWN) {         switch (keyCode) {             case KeyEvent.KEYCODE_BACK:                 if (mWebView.canGoBack()) {                     mWebView.goBack();                 } else {                     finish();                 }                 return true;         }      }     return super.onKeyDown(keyCode, event); } 

Edit:

For this code to work, you need to add a field to the Activity containing the WebView:

private WebView mWebView; 

Initialize it in the onCreate() method and you should be good to go.

mWebView = (WebView) findViewById(R.id.webView); 
like image 110
FoamyGuy Avatar answered Sep 22 '22 08:09

FoamyGuy