mercredi 27 octobre 2010 12:23
par
nicoboo
Bing Maps for Enterprise – Integration WPF : interoperabilite avec Silverlight - [Partie 3] Developpement JavaScript
Cet article suit la partie concernant le développement Silverlight disponible à travers ce lien.
Le code JavaScript est réellement l’élément clé qui permet d’assurer la communication entre l’application Silverlight et l’application lourde.
Gestion de l’événement de chargement du contrôle Silverlight
Dans la déclaration de l’objet HTML composé, on ajoute un événement simple qui est déclenché après le chargement du plugin et du contrôle :
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2"
width="100%" height="100%">
<param name="source" value="ClientBin/SLClientMapsSimple.xap" />
<param name="onError" value="onSilverlightError" />
<param name="onLoad" value="pluginLoaded" />
. . .
</object>
Voici le code de la méthode qui est alors associée :
function pluginLoaded(sender) {
slCtl = sender.getHost();
}
Cette méthode initialise donc la variable déclarée globalement, comme étant une référence de l’application Silverlight.
Interaction JavaScript vers Silverlight
Dès lors, il devient possible d’accéder au contenu déclaré comme des membres utilisables depuis le code JavaScript. C’est ce qu’on réalise à travers les 3 méthodes suivantes déclarées dans le code JavaScript de la page :
function changeToHybrid() {
if (slCtl != null)
slCtl.Content.mySLapp.SetMapHybrid();
}
function changeMapStyle(style) {
if (slCtl != null)
if(style != "")
slCtl.Content.mySLapp.SetMapStyle(style);
}
function addContent(encodedContent) {
if (slCtl != null)
if (encodedContent != "")
slCtl.Content.mySLapp.AddContent(encodedContent);
}
On remarque l’utilisation de la référence récupérée dans la méthode principale et l’utilisation du nom de l’objet déclaré en Silverlight : slCtl.Content.mySLapp.
Interaction Silverlight vers JavaScript
On retrouve la méthode wpfDisplayMessage() déclenchée depuis le code Silverlight. Voici le code associé :
function wpfDisplayMessage(message) {
// Show Message in WPF application
window.external.DisplayMessageBox(message);
}
Nous détaillerons dans l’implémentation dans l’application lourde, le contenu de cette méthode et la technique pour la rendre accessible.
La prochaine et dernière partie présentera le développement concernant l’application lourde WPF ou Winform.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :