Add a hardwareback option to allow for the hardware back button to go back.

This commit is contained in:
Kris Erickson 2014-03-09 11:33:24 -07:00
parent a5dedae631
commit 392a73c2cd
2 changed files with 28 additions and 2 deletions

View File

@ -78,6 +78,7 @@ public class InAppBrowser extends CordovaPlugin {
private static final String CLOSE_BUTTON_CAPTION = "closebuttoncaption"; private static final String CLOSE_BUTTON_CAPTION = "closebuttoncaption";
private static final String CLEAR_ALL_CACHE = "clearcache"; private static final String CLEAR_ALL_CACHE = "clearcache";
private static final String CLEAR_SESSION_CACHE = "clearsessioncache"; private static final String CLEAR_SESSION_CACHE = "clearsessioncache";
private static final String HARDWARE_BACK_BUTTON = "hardwareback";
private InAppBrowserDialog dialog; private InAppBrowserDialog dialog;
private WebView inAppWebView; private WebView inAppWebView;
@ -88,6 +89,7 @@ public class InAppBrowser extends CordovaPlugin {
private String buttonLabel = "Done"; private String buttonLabel = "Done";
private boolean clearAllCache= false; private boolean clearAllCache= false;
private boolean clearSessionCache=false; private boolean clearSessionCache=false;
private boolean hadwareBackButton=false;
/** /**
* Executes the request and returns PluginResult. * Executes the request and returns PluginResult.
@ -363,12 +365,28 @@ public class InAppBrowser extends CordovaPlugin {
/** /**
* Checks to see if it is possible to go back one page in history, then does so. * Checks to see if it is possible to go back one page in history, then does so.
*/ */
private void goBack() { public void goBack() {
if (this.inAppWebView.canGoBack()) { if (this.inAppWebView.canGoBack()) {
this.inAppWebView.goBack(); this.inAppWebView.goBack();
} }
} }
/**
* Can the web browser go back?
* @return boolean
*/
public boolean canGoBack() {
return this.inAppWebView.canGoBack();
}
/**
* Has the user set the hardware back button to go back
* @return boolean
*/
public boolean hardwareBack() {
return hadwareBackButton;
}
/** /**
* Checks to see if it is possible to go forward one page in history, then does so. * Checks to see if it is possible to go forward one page in history, then does so.
*/ */
@ -428,6 +446,10 @@ public class InAppBrowser extends CordovaPlugin {
if (hidden != null) { if (hidden != null) {
openWindowHidden = hidden.booleanValue(); openWindowHidden = hidden.booleanValue();
} }
Boolean hardwareBack = features.get(HARDWARE_BACK_BUTTON);
if (hardwareBack != null) {
hadwareBackButton = hardwareBack.booleanValue();
}
Boolean cache = features.get(CLEAR_ALL_CACHE); Boolean cache = features.get(CLEAR_ALL_CACHE);
if (cache != null) { if (cache != null) {
clearAllCache = cache.booleanValue(); clearAllCache = cache.booleanValue();

View File

@ -48,7 +48,11 @@ public class InAppBrowserDialog extends Dialog {
} else { } else {
// better to go through the in inAppBrowser // better to go through the in inAppBrowser
// because it does a clean up // because it does a clean up
if (this.inAppBrowser.hardwareBack() && this.inAppBrowser.canGoBack()) {
this.inAppBrowser.goBack();
} else {
this.inAppBrowser.closeDialog(); this.inAppBrowser.closeDialog();
} }
} }
} }
}