4D v16.3Gestion programmée des zones Web |
||
|
4D v16.3
Gestion programmée des zones Web
Gestion programmée des zones Web
Les commandes de ce thème sont dédiées à la gestion programmée des objets de formulaire de type Zone Web (Web Area). Les zones Web peuvent afficher tout type de contenu Web(*) à l’intérieur même de votre environnement 4D : pages HTML au contenu statique ou dynamique, fichiers, images, Javascript... L'image suivante montre une zone Web incluse dans un formulaire et affichant une page HTML : (*) L'usage de plugins Web et d'applets Java est toutefois déconseillé (cf. Notes d'utilisation des zones Web). Outre les commandes du thème Zone Web, plusieurs actions standard et des événements formulaires dédiés permettent au développeur de contrôler le fonctionnement des zones Web. Des variables spécifiques prennent en charge l'interaction entre la zone Web et l’environnement 4D. Ces outils vous permettent ainsi de développer un navigateur Web basique dans vos formulaires. La création d’une zone Web s’effectue à l’aide d’une variante du bouton Zone de plug-in/Sous-formulaire de la barre d’objets de l’éditeur de formulaires de 4D (pour plus d'information, reportez-vous à la section Zones Web dans le manuel Mode Développement). Note : Lorsqu'une zone Web utilisant le moteur de rendu intégré est affichée dans un process créé avec la commande Nouveau process, il est recommandé d'utiliser la valeur par défaut (0) pour le paramètre pile. Comme les autres objets dynamiques de formulaire, une zone Web dispose d’un nom d’objet et d’un nom de variable, vous permettant de l’adresser par programmation. La variable standard associée à l’objet zone Web est de type Texte. Vous pouvez en particulier utiliser les commandes OBJET FIXER VISIBLE et OBJET DEPLACER avec les zones Web. Note : La variable Texte associée à la zone Web ne contient pas de référence et ne peut donc pas être passée en tant que paramètre à une méthode. Par exemple, pour une zone Web nommée MaZone, le code suivant ne peut pas être utilisé :
Mamethode(MaZone) Code de Mamethode :
WA ACTUALISER URL($1) //Ne fonctionne pas Pour ce type de programmation, vous devez utiliser des pointeurs :
Mamethode(->MaZone) Code de Mamethode : WA ACTUALISER URL($1->) //Fonctionne Outre la variable objet standard (cf. paragraphe précédent), deux variables spécifiques sont automatiquement associées à chaque zone Web :
Vous pouvez nommer ces variables comme vous le souhaitez. Les variables sont accessibles dans la Liste des propriétés : La variable "URL" est de type chaîne. Elle contient l’URL chargé ou en cours de chargement par la zone Web associée.
Variable URL et commande WA OUVRIR URL
La variable "Progression" est de type Entier long. Elle contient une valeur entre 0 et 100, représentant le pourcentage du chargement complet de la page affichée dans la zone Web. Il est possible d’appeler des méthodes 4D depuis le code JavaScript exécuté dans une zone Web et de recevoir des valeurs en retour. Important : Cette fonction est disponible uniquement si la zone Web utilise le moteur de rendu Web intégré. Pour pouvoir appeler des méthodes 4D depuis la zone Web, vous devez cocher l'option Accès méthodes 4D pour la zone dans la Liste des propriétés :
Note : Cette option n’apparaît que si l’option Utiliser le moteur de rendu Web intégré est cochée. Lorsque cette propriété est cochée, un objet JavaScript spécial ($4d) est instancié dans la zone Web et permet de gérer les appels aux méthodes projet de 4D. Lorsque l’option Accès méthodes 4D est cochée, le moteur de rendu Web intégré de 4D fournit à la zone un objet JavaScript nommé $4d que vous pouvez associer à toute méthode projet 4D à l’aide de la notation objet ".". Par exemple, pour appeler la méthode 4D HelloWorld, il vous suffit d’exécuter l’instruction JavaScript :
$4d.HelloWorld(); Attention : Notez bien que l’objet est nommé $4d (le "d" est en minuscule). JavaScript tient compte de la casse des caractères. La syntaxe des appels aux méthodes 4D est la suivante : $4d.NomMethode4D(param1,paramN,function(result){})
Soit une méthode projet 4D nommée today ne recevant pas de paramètre et retournant la date courante sous forme de chaîne. Code 4D de la méthode today : C_TEXTE($0) Dans la zone Web, la méthode 4D peut être appelée avec la syntaxe suivante : $4d.today() La méthode 4D ne reçoit aucun paramètre, en revanche elle retourne la valeur de $0 à la fonction de rétro-appel (callback) appelée par 4D à l’issue de l’exécution de la méthode. On souhaite afficher la date dans la page HTML qui sera chargée par la zone Web. Voici le code de la page HTML : <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> $4d.today(function(dollarZero) { var curDate = dollarZero; document.getElementById("madiv").innerHTML=curDate; }); </script> </head> <body>Aujourd'hui nous sommes le : <div id="madiv"></div> </body> </html> La méthode projet 4D calcSum reçoit des paramètres ($1...$n) et en retourne la somme dans $0 : Code 4D de la méthode calcSum : C_REEL(${1}) //reçoit n paramètres de type REEL Le code JavaScript exécuté dans la zone Web est donc : $4d.calcSum(33, 45, 75, 102.5, 7, function(dollarZero) { var result = dollarZero // result vaut 262.5 }); Des événements formulaire spécifiques sont destinés à la gestion programmée des zones Web, concernant notamment l'activation des liens :
En outre, les zones Web prennent en charge les événements formulaire génériques suivants :
Pour plus d'informations sur ces événements, reportez-vous à la description de la commande Evenement formulaire. Il est possible d’afficher et d’utiliser un inspecteur Web au sein des zones Web de vos formulaires. L’inspecteur Web est un débogueur, proposé par les moteur de rendu Web intégré, permettant d’analyser le code et les flux d’information des pages Web. Pour que vous puissiez afficher l’inspecteur Web dans une zone Web, les conditions suivantes doivent être réunies :
Lorsque les paramétrages décrits ci-dessus sont effectués, vous disposez de nouvelles options telles que Inspect Element dans le menu contextuel de la zone : Lorsque vous sélectionnez cette option, le débogueur de la zone Web est alors affiché. L’inspecteur Web est inclus dans le moteur de rendu intégré. Pour une description détaillée des fonctionnalités de ce débogueur, veuillez vous reporter à la documentation fournie du moteur de rendu Web utilisé. Lors de l’exécution du formulaire, l’utilisateur dispose des fonctions d’interface standard des navigateurs dans la zone Web, ce qui lui permet d’interagir avec les autres zones du formulaire :
Pour des raisons liées aux mécanismes de redessinement des fenêtres, l'insertion d'une zone Web dans un sous-formulaire est soumise aux contraintes suivantes :
Sous Windows, il est déconseillé d’accéder via une zone Web au serveur Web de l’application 4D contenant la zone car cette configuration peut provoquer un conflit paralysant l’application. Bien entendu, un 4D distant peut accéder au serveur Web du 4D Server, mais pas à son propre serveur Web. L'usage de plugins Web et d'applets Java dans les zones Web est déconseillé car ils peuvent entraîner des instabilités dans le fonctionnement de 4D, notamment au niveau de la gestion des événements. Les URLs manipulés par programmation dans les zones Web sous Mac OS doivent débuter par le protocole. Par exemple, vous devez passer la chaîne "http://www.monsite.fr" et non uniquement "www.monsite.fr".
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D - Langage ( 4D v16) |