Add a hardwareback option to allow for the hardware back button to go back.
This commit is contained in:
parent
a5dedae631
commit
392a73c2cd
@ -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();
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user