66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
|
/*jslint indent: 2 */
|
||
|
/*global window, jQuery, angular, cordova */
|
||
|
"use strict";
|
||
|
|
||
|
// Returns a jQuery or AngularJS deferred object, or pass a success and fail callbacks if you don't want to use jQuery or AngularJS
|
||
|
var getPromisedCordovaExec = function (command, success, fail) {
|
||
|
var toReturn, deferred, injector, $q;
|
||
|
if (success === undefined) {
|
||
|
if (window.jQuery) {
|
||
|
deferred = jQuery.Deferred();
|
||
|
success = deferred.resolve;
|
||
|
fail = deferred.reject;
|
||
|
toReturn = deferred;
|
||
|
} else if (window.angular) {
|
||
|
injector = angular.injector(["ng"]);
|
||
|
$q = injector.get("$q");
|
||
|
deferred = $q.defer();
|
||
|
success = deferred.resolve;
|
||
|
fail = deferred.reject;
|
||
|
toReturn = deferred.promise;
|
||
|
} else if (window.when && window.when.promise) {
|
||
|
deferred = when.defer();
|
||
|
success = deferred.resolve;
|
||
|
fail = deferred.reject;
|
||
|
toReturn = deferred.promise;
|
||
|
} else if (window.Promise) {
|
||
|
toReturn = new Promise(function(c, e) {
|
||
|
success = c;
|
||
|
fail = e;
|
||
|
});
|
||
|
} else if (window.WinJS && window.WinJS.Promise) {
|
||
|
toReturn = new WinJS.Promise(function(c, e) {
|
||
|
success = c;
|
||
|
fail = e;
|
||
|
});
|
||
|
} else {
|
||
|
return console.error('AppVersion either needs a success callback, or jQuery/AngularJS/Promise/WinJS.Promise defined for using promises');
|
||
|
}
|
||
|
}
|
||
|
// 5th param is NOT optional. must be at least empty array
|
||
|
cordova.exec(success, fail, "AppVersion", command, []);
|
||
|
return toReturn;
|
||
|
};
|
||
|
|
||
|
var getAppVersion = function (success, fail) {
|
||
|
return getPromisedCordovaExec('getVersionNumber', success, fail);
|
||
|
};
|
||
|
|
||
|
getAppVersion.getAppName = function (success, fail) {
|
||
|
return getPromisedCordovaExec('getAppName', success, fail);
|
||
|
};
|
||
|
|
||
|
getAppVersion.getPackageName = function (success, fail) {
|
||
|
return getPromisedCordovaExec('getPackageName', success, fail);
|
||
|
};
|
||
|
|
||
|
getAppVersion.getVersionNumber = function (success, fail) {
|
||
|
return getPromisedCordovaExec('getVersionNumber', success, fail);
|
||
|
};
|
||
|
|
||
|
getAppVersion.getVersionCode = function (success, fail) {
|
||
|
return getPromisedCordovaExec('getVersionCode', success, fail);
|
||
|
};
|
||
|
|
||
|
module.exports = getAppVersion;
|