Fennec/NativeUI/Messages: Difference between revisions
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
== Gecko -> Java == | == Gecko -> Java == | ||
<pre> | |||
function SendMessageToJava(obj) { | function SendMessageToJava(obj) { | ||
Cc["@mozilla.org/android/bridge;1"] | Cc["@mozilla.org/android/bridge;1"] | ||
Line 6: | Line 7: | ||
.handleGeckoMessage(JSON.stringify(obj)); | .handleGeckoMessage(JSON.stringify(obj)); | ||
} | } | ||
</pre> | |||
The message ends up in embedding/android/GeckoAppShell.java handleGeckoMessage(). | The message ends up in embedding/android/GeckoAppShell.java handleGeckoMessage(). | ||
== Java -> Gecko == | == Java -> Gecko == |
Revision as of 03:57, 13 October 2011
Gecko -> Java
function SendMessageToJava(obj) { Cc["@mozilla.org/android/bridge;1"] .getService(Ci.nsIAndroidBridge) .handleGeckoMessage(JSON.stringify(obj)); }
The message ends up in embedding/android/GeckoAppShell.java handleGeckoMessage().
Java -> Gecko
From java we can post message that can be recieved by the nsIObserver. Subject and Data can be anything here:
// JAVA: GeckoEvent e = new GeckoEvent("subject", "data"); GeckoAppShell.sendEventToGecko(e);
any registered nsIObserver can see this:
// Javascript let SomeEventListener = { init: function() { Services.obs.addObserver(this, "subject", false); }, observe: function(aSubject, aTopic, aData) { if (aTopic == "subject") { // data could be anything, think json. } }, };