WebSocket interface
Web sockets handlers fully implemented. Filter handlers have yet to be implemented.
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
// The magic return variable. The magic return variable will be set during the execution of the QML call.
|
||||
(function(window) {
|
||||
function message(type, data) {
|
||||
document.title = JSON.stringify({type: type, data: data});
|
||||
|
||||
return window.____returnData;
|
||||
var Promise = window.Promise;
|
||||
if(typeof(Promise) === "undefined") {
|
||||
var Promise = Q.Promise;
|
||||
}
|
||||
|
||||
function isPromise(o) {
|
||||
@@ -446,6 +445,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
var g_seed = 1;
|
||||
function postData(data, cb) {
|
||||
data._seed = g_seed;
|
||||
@@ -459,24 +459,6 @@
|
||||
|
||||
g_seed++;
|
||||
|
||||
navigator.qt.postMessage(JSON.stringify(data));
|
||||
}
|
||||
|
||||
navigator.qt.onmessage = function(ev) {
|
||||
var data = JSON.parse(ev.data)
|
||||
|
||||
if(data._event !== undefined) {
|
||||
eth.trigger(data._event, data.data);
|
||||
} else {
|
||||
if(data._seed) {
|
||||
var cb = eth._callbacks[data._seed];
|
||||
if(cb) {
|
||||
cb.call(this, data.data)
|
||||
|
||||
// Remove the "trigger" callback
|
||||
delete eth._callbacks[ev._seed];
|
||||
}
|
||||
}
|
||||
}
|
||||
window._messagingAdapter.call(this, JSON.stringify(data))
|
||||
}
|
||||
})(this);
|
||||
|
@@ -1,3 +0,0 @@
|
||||
if(typeof(Promise) === "undefined") {
|
||||
window.Promise = Q.Promise;
|
||||
}
|
21
mist/assets/ext/qt_messaging_adapter.js
Normal file
21
mist/assets/ext/qt_messaging_adapter.js
Normal file
@@ -0,0 +1,21 @@
|
||||
window._messagingAdapter = function(data) {
|
||||
navigator.qt.postMessage(data);
|
||||
};
|
||||
|
||||
navigator.qt.onmessage = function(ev) {
|
||||
var data = JSON.parse(ev.data)
|
||||
|
||||
if(data._event !== undefined) {
|
||||
eth.trigger(data._event, data.data);
|
||||
} else {
|
||||
if(data._seed) {
|
||||
var cb = eth._callbacks[data._seed];
|
||||
if(cb) {
|
||||
cb.call(this, data.data)
|
||||
|
||||
// Remove the "trigger" callback
|
||||
delete eth._callbacks[ev._seed];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -164,7 +164,7 @@ import "../ext/qml_messaging.js" as Messaging
|
||||
experimental.preferences.javascriptEnabled: true
|
||||
experimental.preferences.navigatorQtObjectEnabled: true
|
||||
experimental.preferences.developerExtrasEnabled: true
|
||||
experimental.userScripts: ["../ext/q.js", "../ext/pre.js", "../ext/big.js", "../ext/string.js", "../ext/html_messaging.js"]
|
||||
experimental.userScripts: ["../ext/qt_messaging_adapter.js", "../ext/q.js", "../ext/big.js", "../ext/string.js", "../ext/html_messaging.js"]
|
||||
experimental.onMessageReceived: {
|
||||
console.log("[onMessageReceived]: ", message.data)
|
||||
// TODO move to messaging.js
|
||||
|
Reference in New Issue
Block a user