File "ngcordova-wrapper-nativestorage.js"
Full Path: /srv/www/www.cadoro.it/app/www/lib/ngcordova-wrapper-nativestorage/src/ngcordova-wrapper-nativestorage.js
File size: 3.08 KB
MIME-type: text/plain
Charset: utf-8
angular.module("ngCordova.plugins.nativeStorage", [])
.factory('$cordovaNativeStorage', ['$window', '$q', '$log', function ($window, $q, $log) {
var inBrowser = false;
var initialised = false;
function isInBrowser() {
if (!initialised) {
inBrowser = ($window.cordova && $window.cordova.platformId === 'browser') || !($window.phonegap || $window.cordova);
if (!inBrowser) {
$log.log('NativeStorageWrapper: isNotInBrowser');
} else {
$log.log('NativeStorageWrapper: isInBrowser');
}
initialised = true;
}
return inBrowser;
};
function setInLocalStorage (reference, variable, success, error) {
try {
var varAsString = JSON.stringify(variable);
$window.localStorage[reference] = varAsString;
success(variable);
} catch (err) {
error(err);
}
};
function getFromLocalStorage(reference, success, error) {
try {
var obj;
var value = $window.localStorage[reference];
if (value != undefined) {
obj = JSON.parse(value);
success(obj);
} else {
throw new Error(reference + ': undefined');
}
} catch (err) {
error(err);
}
};
function removeFromLocalStorage(reference, success, error) {
try {
$window.localStorage.removeItem(reference);
success(null);
} catch (err) {
error(err);
}
};
return {
remove: function(reference) {
var q = $q.defer();
if (isInBrowser()) {
removeFromLocalStorage(reference, function(result) {q.resolve(result);}, function(error) {q.reject(error);});
} else {
NativeStorage.remove(reference, function(result) {q.resolve(result);}, function(error) {q.reject(error);});
}
return q.promise;
},
setItem: function(reference, s) {
var q = $q.defer();
if (isInBrowser()) {
setInLocalStorage(reference, s, function(result) {q.resolve(result);}, function(error) {q.reject(error);});
} else {
NativeStorage.setItem(reference, s, function(result) {q.resolve(result);}, function(error) {q.reject(error);});
}
return q.promise;
},
getItem: function(reference) {
var q = $q.defer();
if (isInBrowser()) {
getFromLocalStorage(reference, function(result) {q.resolve(result);}, function(error) {q.reject(error);});
} else {
NativeStorage.getItem(reference, function(result) {q.resolve(result);}, function(error) {q.reject(error);});
}
return q.promise;
},
clear: function() {
var q = $q.defer();
if (isInBrowser()) {
clearFromLocalStorage(function(result) {
q.resolve(result);
}, function(error) {
q.reject(error);
});
} else {
NativeStorage.clear(function(result) {
q.resolve(result);
}, function(error) {
q.reject(error);
});
}
return q.promise;
}
};
}])