cordova-plugin-nativestorage
Version:
Native storage of variables in Android, iOS and Windows
159 lines (155 loc) • 5.1 kB
JavaScript
/**
* Created by Christian on 30.08.2016.
* christian@helbighof.de
*/
var package = Windows.ApplicationModel.Package.current;
var service = package.id.name
var NativeStorageProxy = {
getItem: function (win, fail, args) {
try {
var key = args[0];
var vault = new Windows.Security.Credentials.PasswordVault();
var passwordCredential = vault.retrieve(service, key);
win(passwordCredential.password);
} catch (e) {
fail(2);
}
},
setItem: function (win, fail, args) {
try {
var key = args[0];
var value = args[1];
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(service, key, value));
win(value);
} catch (e) {
fail(1);
}
},
clear: function (win, fail, args) {
//todo: Clear all values in NativeStorage
try {
var vault = new Windows.Security.Credentials.PasswordVault();
var iVectorView = vault.retrieveAll();
if (iVectorView == null)
win();
for (var i = 0; i < iVectorView.size; i++) {
vault.remove(iVectorView[i]);
}
win();
} catch (e) {
fail();
}
},
putString: function (win, fail, args) {
try {
var key = args[0];
var value = args[1];
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(service, key, value));
win(value);
} catch (e) {
fail(1);
}
},
getString: function (win, fail, args) {
try {
var key = args[0];
var vault = new Windows.Security.Credentials.PasswordVault();
var passwordCredential = vault.retrieve(service, key);
win(passwordCredential.password);
} catch (e) {
fail(2);
}
},
putBoolean: function (win, fail, args) {
try {
var key = args[0];
var value = args[1];
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(service, key, value));
win(value);
} catch (e) {
fail(1);
}
},
getBoolean: function (win, fail, args) {
try {
var key = args[0];
var vault = new Windows.Security.Credentials.PasswordVault();
var passwordCredential = vault.retrieve(service, key);
win(passwordCredential.password);
} catch (e) {
fail(2);
}
},
putInt: function (win, fail, args) {
try {
var key = args[0];
var value = args[1];
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(service, key, value));
win(value);
} catch (e) {
fail(1);
}
},
getInt: function (win, fail, args) {
try {
var key = args[0];
var vault = new Windows.Security.Credentials.PasswordVault();
var passwordCredential = vault.retrieve(service, key);
win(parseInt(passwordCredential.password));
} catch (e) {
fail(2);
}
},
putDouble: function (win, fail, args) {
try {
var key = args[0];
var value = args[1];
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(service, key, value));
win(value);
} catch (e) {
fail(1);
}
},
getDouble: function (win, fail, args) {
try {
var key = args[0];
var vault = new Windows.Security.Credentials.PasswordVault();
var passwordCredential = vault.retrieve(service, key);
win(passwordCredential.password);
} catch (e) {
fail(2);
}
},
remove: function (win, fail, args) {
try {
var key = args[0];
var vault = new Windows.Security.Credentials.PasswordVault();
var passwordCredential = vault.retrieve(service, key);
if (passwordCredential) {
vault.remove(passwordCredential);
}
win(key);
} catch (e) {
fail(2);
}
},
keys: function (win, fail) {
try {
var vault = new Windows.Security.Credentials.PasswordVault();
var all = vault.retrieveAll();
var keys = [];
for(var i=0;i<all.Size;i++) {
keys.push(all.GetAt(i).UserName);
}
win(keys);
} catch (e) {
fail(2);
}
},
};
require("cordova/exec/proxy").add("NativeStorage", NativeStorageProxy);