Fennec/NativeUI/Messages: Difference between revisions

From MozillaWiki
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.    
      }
  },
};