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 CLEAR_ALL_CACHE = "clearcache";
private static final String CLEAR_SESSION_CACHE = "clearsessioncache";
private static final String HARDWARE_BACK_BUTTON = "hardwareback";
private InAppBrowserDialog dialog;
private WebView inAppWebView;
@ -88,6 +89,7 @@ public class InAppBrowser extends CordovaPlugin {
private String buttonLabel = "Done";
private boolean clearAllCache= false;
private boolean clearSessionCache=false;
private boolean hadwareBackButton=false;
/**
* 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.
*/
private void goBack() {
public void goBack() {
if (this.inAppWebView.canGoBack()) {
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.
*/
@ -428,6 +446,10 @@ public class InAppBrowser extends CordovaPlugin {
if (hidden != null) {
openWindowHidden = hidden.booleanValue();
}
Boolean hardwareBack = features.get(HARDWARE_BACK_BUTTON);
if (hardwareBack != null) {
hadwareBackButton = hardwareBack.booleanValue();
}
Boolean cache = features.get(CLEAR_ALL_CACHE);
if (cache != null) {
clearAllCache = cache.booleanValue();

View File

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