Skip to content

Instantly share code, notes, and snippets.

@benbahrenburg
Created July 18, 2015 18:40
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 benbahrenburg/9d132aca3e23d0f49237 to your computer and use it in GitHub Desktop.
Save benbahrenburg/9d132aca3e23d0f49237 to your computer and use it in GitHub Desktop.
WK Bridging idea
var qxCore = {
callbackWrappers : {
wrapperCounter : 0,
generateId : function(name){
qxCore.callbackWrappers.wrapperCounter++;
return name + qxCore.callbackWrappers.wrapperCounter;
}
}
};
var foo = {
callbacks : [],
callbackTemplate : function(e){
if(!e.hasOwnProperty("__transactionId")){
return
}
for (i = 0; i < foo.callbacks.length; i++) {
if(foo.callbacks[i].id === e.__transactionId){
foo.callbacks[i].deferredMethod(e);
foo.callbacks.splice(i, 1);
}
}
},
save : function(model,callback){
model.__transactionId = qxCore.callbackWrappers.generateId('foo.save');
foo.callbacks.push({id : model.__transactionId, deferredMethod : callback});
window.webkit.messageHandlers.foo.save.postMessage(model);
},
load : function(error,success){
var __transactionId = qxCore.callbackWrappers.generateId('foo.load');
foo.callbacks.push({id : __transactionId, deferredMethod : callback});
window.webkit.messageHandlers.foo.load.postMessage({__transactionId:__transactionId);
},
saveCallback : foo.callbackTemplate
loadCallback : foo.callbackTemplate
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment