add "clearallcache" and "clearsessioncache" option to InAppbrowser
This commit is contained in:
parent
57126a4945
commit
629964d61c
@ -51,6 +51,7 @@ import android.view.WindowManager;
|
|||||||
import android.view.WindowManager.LayoutParams;
|
import android.view.WindowManager.LayoutParams;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
|
import android.webkit.CookieManager;
|
||||||
import android.webkit.WebChromeClient;
|
import android.webkit.WebChromeClient;
|
||||||
import android.webkit.GeolocationPermissions.Callback;
|
import android.webkit.GeolocationPermissions.Callback;
|
||||||
import android.webkit.JsPromptResult;
|
import android.webkit.JsPromptResult;
|
||||||
@ -78,6 +79,9 @@ public class InAppBrowser extends CordovaPlugin {
|
|||||||
private static final String LOAD_STOP_EVENT = "loadstop";
|
private static final String LOAD_STOP_EVENT = "loadstop";
|
||||||
private static final String LOAD_ERROR_EVENT = "loaderror";
|
private static final String LOAD_ERROR_EVENT = "loaderror";
|
||||||
private static final String CLOSE_BUTTON_CAPTION = "closebuttoncaption";
|
private static final String CLOSE_BUTTON_CAPTION = "closebuttoncaption";
|
||||||
|
private static final String CLEAR_ALL_CACHE = "clearallcache";
|
||||||
|
private static final String CLEAR_SESSION_CACHE = "clearsessioncache";
|
||||||
|
|
||||||
private long MAX_QUOTA = 100 * 1024 * 1024;
|
private long MAX_QUOTA = 100 * 1024 * 1024;
|
||||||
|
|
||||||
private Dialog dialog;
|
private Dialog dialog;
|
||||||
@ -87,6 +91,8 @@ public class InAppBrowser extends CordovaPlugin {
|
|||||||
private boolean showLocationBar = true;
|
private boolean showLocationBar = true;
|
||||||
private boolean openWindowHidden = false;
|
private boolean openWindowHidden = false;
|
||||||
private String buttonLabel = "Done";
|
private String buttonLabel = "Done";
|
||||||
|
private boolean clearAllCache= false;
|
||||||
|
private boolean clearSessionCache=false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes the request and returns PluginResult.
|
* Executes the request and returns PluginResult.
|
||||||
@ -382,9 +388,18 @@ public class InAppBrowser extends CordovaPlugin {
|
|||||||
showLocationBar = show.booleanValue();
|
showLocationBar = show.booleanValue();
|
||||||
}
|
}
|
||||||
Boolean hidden = features.get(HIDDEN);
|
Boolean hidden = features.get(HIDDEN);
|
||||||
if(hidden != null) {
|
if (hidden != null) {
|
||||||
openWindowHidden = hidden.booleanValue();
|
openWindowHidden = hidden.booleanValue();
|
||||||
}
|
}
|
||||||
|
Boolean cache = features.get(CLEAR_ALL_CACHE);
|
||||||
|
if (cache != null) {
|
||||||
|
clearAllCache = cache.booleanValue();
|
||||||
|
} else {
|
||||||
|
cache = features.get(CLEAR_SESSION_CACHE);
|
||||||
|
if (cache != null) {
|
||||||
|
clearSessionCache = cache.booleanValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final CordovaWebView thatWebView = this.webView;
|
final CordovaWebView thatWebView = this.webView;
|
||||||
@ -522,14 +537,19 @@ public class InAppBrowser extends CordovaPlugin {
|
|||||||
//Toggle whether this is enabled or not!
|
//Toggle whether this is enabled or not!
|
||||||
Bundle appSettings = cordova.getActivity().getIntent().getExtras();
|
Bundle appSettings = cordova.getActivity().getIntent().getExtras();
|
||||||
boolean enableDatabase = appSettings == null ? true : appSettings.getBoolean("InAppBrowserStorageEnabled", true);
|
boolean enableDatabase = appSettings == null ? true : appSettings.getBoolean("InAppBrowserStorageEnabled", true);
|
||||||
if(enableDatabase)
|
if (enableDatabase) {
|
||||||
{
|
|
||||||
String databasePath = cordova.getActivity().getApplicationContext().getDir("inAppBrowserDB", Context.MODE_PRIVATE).getPath();
|
String databasePath = cordova.getActivity().getApplicationContext().getDir("inAppBrowserDB", Context.MODE_PRIVATE).getPath();
|
||||||
settings.setDatabasePath(databasePath);
|
settings.setDatabasePath(databasePath);
|
||||||
settings.setDatabaseEnabled(true);
|
settings.setDatabaseEnabled(true);
|
||||||
}
|
}
|
||||||
settings.setDomStorageEnabled(true);
|
settings.setDomStorageEnabled(true);
|
||||||
|
|
||||||
|
if (clearAllCache) {
|
||||||
|
CookieManager.getInstance().removeAllCookie();
|
||||||
|
} else if (clearSessionCache) {
|
||||||
|
CookieManager.getInstance().removeSessionCookie();
|
||||||
|
}
|
||||||
|
|
||||||
inAppWebView.loadUrl(url);
|
inAppWebView.loadUrl(url);
|
||||||
inAppWebView.setId(6);
|
inAppWebView.setId(6);
|
||||||
inAppWebView.getSettings().setLoadWithOverviewMode(true);
|
inAppWebView.getSettings().setLoadWithOverviewMode(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user