Add ability to re-enable webview optimizations
This commit is contained in:
parent
b33044c8e5
commit
6000adfa15
@ -101,6 +101,9 @@ public class BackgroundModeExt extends CordovaPlugin {
|
||||
case "webview":
|
||||
disableWebViewOptimizations();
|
||||
break;
|
||||
case "enableWebview":
|
||||
enableWebViewOptimizations();
|
||||
break;
|
||||
case "appstart":
|
||||
openAppStart(args.opt(0));
|
||||
break;
|
||||
@ -196,6 +199,31 @@ public class BackgroundModeExt extends CordovaPlugin {
|
||||
thread.start();
|
||||
}
|
||||
|
||||
private void enableWebViewOptimizations() {
|
||||
Thread thread = new Thread(){
|
||||
public void run() {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
getApp().runOnUiThread(() -> {
|
||||
View view = webView.getView();
|
||||
|
||||
try {
|
||||
Class.forName("org.crosswalk.engine.XWalkCordovaView")
|
||||
.getMethod("onHide")
|
||||
.invoke(view);
|
||||
} catch (Exception e){
|
||||
view.dispatchWindowVisibilityChanged(View.GONE);
|
||||
}
|
||||
});
|
||||
} catch (InterruptedException e) {
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
thread.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Disables battery optimizations for the app.
|
||||
* Requires permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS to function.
|
||||
|
@ -164,6 +164,14 @@ exports.disableWebViewOptimizations = function()
|
||||
}
|
||||
};
|
||||
|
||||
exports.enableWebViewOptimizations = function()
|
||||
{
|
||||
if (this._isAndroid)
|
||||
{
|
||||
cordova.exec(null, null, 'BackgroundModeExt', 'enableWebview', []);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Disables battery optimazation mode for the app.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user