diff --git a/http.js b/http.js index 4f6296d084..ff83356570 100644 --- a/http.js +++ b/http.js @@ -16,10 +16,10 @@ function formatJsonRpcMessage(message) { var object = JSON.parse(message); - return JSON.stringify({ + return { _id: object.id, data: object.result - }); + }; }; HttpProvider.prototype.send = function (payload) { diff --git a/main.js b/main.js index bc6163f35a..1a5afeb561 100644 --- a/main.js +++ b/main.js @@ -489,8 +489,7 @@ } }); - function messageHandler(ev) { - var data = JSON.parse(ev) + function messageHandler(data) { if(data._event !== undefined) { web3.trigger(data._event, data.data); diff --git a/qt.js b/qt.js index 39c0a89a9c..1b146c30dc 100644 --- a/qt.js +++ b/qt.js @@ -1,12 +1,22 @@ (function() { - var QtProvider = function() {}; + var QtProvider = function() { + this.handlers = []; + + var self = this; + navigator.qt.onmessage = function (message) { + self.handlers.forEach(function (handler) { + handler.call(self, JSON.parse(message)); + }); + } + }; + QtProvider.prototype.send = function(payload) { navigator.qt.postData(JSON.stringify(payload)); }; Object.defineProperty(QtProvider.prototype, "onmessage", { set: function(handler) { - navigator.qt.onmessage = handler; + this.handlers.push(handler); }, }); diff --git a/websocket.js b/websocket.js index 297690b332..732a086f29 100644 --- a/websocket.js +++ b/websocket.js @@ -11,7 +11,7 @@ var self = this; this.ws.onmessage = function(event) { for(var i = 0; i < self.handlers.length; i++) { - self.handlers[i].call(self, event.data, event) + self.handlers[i].call(self, JSON.parse(event.data), event) } };