cordova-plugin-webviewselector
Version:
plugin allowing developers that are using cordova-plugin-crosswalk-webview to switch dynamically between Crosswalk webview and system one
65 lines (57 loc) • 1.4 kB
JavaScript
var exec = require('cordova/exec');
var channel = require('cordova/channel');
var WebViewSelector = {};
WebViewSelector.WebViewType = {
SYSTEM: 0,
CROSSWALK: 1
};
WebViewSelector.currentEngine = null;
WebViewSelector.availableEngines = null;
WebViewSelector.setEngine = function(engineId, cb) {
if (WebViewSelector.WebViewType[engineId] === undefined) {
return cb('unknown webview type: ' + engineId);
}
exec(
function success() {
WebViewSelector.currentEngine = engineId;
cb();
},
function error(error) {
cb(error || 'unable to save configuration');
},
'WebViewSelector',
'setEngine',
[engineId]
);
};
function retrieveCurrentEngine(cb) {
exec(
function success(engineId) {
WebViewSelector.currentEngine = engineId;
cb && cb(null, engineId);
}, function error(error) {
cb && cb(error || 'unable to retrieve webView engine id');
},
'WebViewSelector',
'getEngine',
[]
);
};
function getAvailableEngines(cb) {
exec(
function success(availableEngines) {
WebViewSelector.availableEngines = availableEngines;
cb && cb(null, availableEngines);
}, function error(error) {
cb && cb(error || 'unable to retrieve available engines');
},
'WebViewSelector',
'getAvailableEngines',
[]
);
};
module.exports = WebViewSelector;
channel.onCordovaReady.subscribe(function () {
retrieveCurrentEngine();
getAvailableEngines();
});