mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-01-19 16:52:53 +08:00
28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
var promisifyCordova = function (pluginObj, pluginName, methodName) {
|
|
return function () {
|
|
var args = [];
|
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
args[_i - 0] = arguments[_i];
|
|
}
|
|
return new Promise(function (resolve, reject) {
|
|
if (!cordova) {
|
|
console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but Cordova is not defined. Please make sure you have cordova.js included in your index.html file and you are running in a proper cordova environment');
|
|
reject({
|
|
error: 'cordova_not_available'
|
|
});
|
|
return;
|
|
}
|
|
if (!pluginObj.installed()) {
|
|
console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but the ' + pluginObj.plugin + ' plugin is not installed.');
|
|
reject({
|
|
error: 'plugin_not_installed'
|
|
});
|
|
return;
|
|
}
|
|
console.log('Cordova: exec(' + pluginName + ', ' + methodName + ')');
|
|
cordova.exec(resolve, reject, pluginName, methodName, args);
|
|
});
|
|
};
|
|
};
|
|
exports.promisifyCordova = promisifyCordova;
|