Skip to content

Instantly share code, notes, and snippets.

@colinfrei
Created January 31, 2012 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colinfrei/1710699 to your computer and use it in GitHub Desktop.
Save colinfrei/1710699 to your computer and use it in GitHub Desktop.
Mock object to simulate Phonegap iOS keychain plugin using cookies
function fakeKeychain() {
if (BROWSER === "Desktop") {
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') {
c = c.substring(1, c.length);
}
if (c.indexOf(nameEQ) === 0) {
return c.substring(nameEQ.length, c.length);
}
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
window.plugins = window.plugins || {};
window.plugins.keychain = {
setForKey:function (key, value, serviceName, successCallback) {
createCookie(serviceName + '-' + key, value, 1000);
if (typeof successCallback === 'function') {
successCallback();
}
},
getForKey:function (key, serviceName, successCallback, failureCallback) {
var value = readCookie(serviceName + '-' + key);
if(value){
if (typeof successCallback === 'function') {
successCallback(key, value);
}
} else {
if (typeof failureCallback === 'function') {
failureCallback(key);
}
}
},
removeForKey:function (key, serviceName) {
eraseCookie(serviceName + '-' + key);
}
};
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment