Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Ressources de programmation spécifiques à l'environnement HTML5 de Mercator

0000002672     -      24/10/2016

Quand Mercator s'exécute dans une session virtualisée, la propriété statique suivante est différente de null MercatorUi.Globals.VirtualUI

Cet objet, de la classe MercatorVirtualUI.MercatorVirtualUI, qui se trouve dans MercatorTunnel.dll, permet d'accéder à toute une série de propriétés et méthodes propres à la virtualisation.

Par exemple

  • Connaître le Browser Agent de l'internaute : MercatorUi.Globals.VirtualUI.BrowserInfo.UserAgent

  • Créer un cookie : MercatorUi.Globals.VirtualUI.SetCookie("mycookie""valeur"DateTime.Now.AddDays(1));

  • Lire un cookie : string s = MercatorUi.Globals.VirtualUI.GetCookie("mycookie");

  • Provoquer le téléchargement d'un fichier présent sur le serveur : MercatorUi.Globals.VirtualUI.DownloadFile(@"c:\fichier_sur_le_serveur");

  • Simuler un client sur une ancre (HREF) : MercatorUi.Globals.VirtualUI.OpenLinkDlg("http://www.supersite.com");

  • Exécuter un code JavaScript dans le browser de l'internaute : MercatorUi.Globals.VirtualUI.ExecScript("alert('Hello world !');");

  • Savoir si le mode "Touch device" est activé : bool b = MercatorUi.Globals.VirtualUI.IsTouchDevice;

  • ...

 

Par ailleurs, dans l'Editeur de Code du menu Outils, un type d'onglet supplémentaire est disponible : Js

Il permet d'exécuter directement un code JavaScript dans le browser.


En conséquence, Mercator virtualisé se voit doté de deux langages de programmation :

  • C# qui s'exécute dans Mercator, sur le serveur
  • JavaScript qui s'exécute dans le browser de l'internaute

Les relations entre les deux sont bien entendu possibles. Par exemple, ce code JavaScript va créer un cookie directement dans le browser de l'internaute :

var c_name = 'mycookie';
var exdate = new Date();
exdate.setDate(exdate.getDate() + 1);
var c_value = encodeURIComponent('Hello World') + "; expires=" + exdate.toUTCString();
document.cookie = c_name + "=" + c_value + "; path=/"; 

Et ce code C# va lire ce même cookie :

Zoom
string s = MercatorUi.Globals.VirtualUI.GetCookie("mycookie");