Tags:
create new tag
, view all tags
il faut intégrer les 2 script pour pouvoir communiquer avec les widgets depuis une page parents vers les widget qu'elle contient:

<script type="text/javascript" src="js/intergadget_communication.js"></script>
<script type="text/javascript" src="js/openapp.js"></script>



pour envoyer des données UNIQUEMENT:
intégrer ceci dans une fonction

var message = {
from : "uniqueID", //publisher (string)
to : null, //receivers (array)
object : "test", //message object (string)
type_send : "text", // type of data send (string)
type_receive : [], //type of data receive (array)
data : "bonjour" //content of the message
};
gadgets.openapp.publish({
event: "select",
type: "namespaced-properties",
message: message
});

message.from : l'identifiant de l'envoyeur. Pas indispensable pour juste envoyer un message
message.to : un array avec la liste des id des destinataires. Si null tous les widgets traitent le message.
message.object : l'objet du message, permet de savoir quelle action faire avec le message grace à la fonction intergadget_communication.subscriber_callback
message.type_send: le type de données envoyées.
message.type_receive : le type de données que peut recevoir l'envoyeur. pas indispensable pour juste un envoi
message.data : le contenu du message (text, json object, xml...)

gadgets.openapp.publish : envoie le message à tous les receveurs.



pour obtenir la liste des receveurs potentiels et envoyer un message (ex : les données paratgées par le widget sesame):
intégrer ceci dans une fonction :

//obtenir la liste des receveurs
intergadget_communication.init("uniqueID", ["sesame object"], []);
gadgets.openapp.connect(intergadget_communication.subscriber_callback);
intergadget_communication.receivers.length = 0;
intergadget_communication.publish(null, "sesame object", "info all", null);
setTimeout(function() {
//console.log(intergadget_communication.receivers);
var tmp = receivers[0].split("!!");
var to = tmp[0]; // l'identifiant du premier receveur
intergadget_communication.publish(to, "sesame object", "gadget_sesame", {"decimalPosition":"10.684708333333333 +41.268750000000004","position":"00 42 44.330 +41 16 07.50","canonicalName":"M 31","isObject":"true","name":"m31"}); // envoit le message au premier receveur.
}, 300);

intergadget_communication.init : créer un receveur avec un id unique, le type de données qu'il envera et le type de données qu'il peut recevoir.
gadgets.openapp.connect : fonction callback quand un message est reçu
intergadget_communication.publish(to, type_send, type_receive, data) : publie un message :
-to : null donc tout le monde est concerné par le message
-type_send : le type de données qui est envoyée ou le sera. (on veut connaitre les widgets qui peuvent gérer des "sesame object")
-type receive : vide
-data : le contenu du message. ici null
un settimeout pour laisser le temps à tout le monde de répondre.
intergadget_communication.receivers : array de tous les receveurs qui acceptent des données du type "sesame object" [idWidget1!!titreWidget1,idWidget2!!titreWidget2]

intergadget_communication.subscriber_callback permet d'attribuer une action a un type de message.objet

-- CamilleSimon - 2014-04-09

Topic revision: r1 - 2014-04-09 - CamilleSimon
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback