| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /*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;
|