4D v14.3Gestion programmée des zones Web |
||
|
4D v14.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, Flash, PDF... et même des documents MS Office (sous Windows lorsque la suite MS Office est installée). L'image suivante montre une zone Web incluse dans un formulaire et affichant une page HTML : 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). 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 :
Par défaut, ces variables sont nommées respectivement nomZone_url et nomZone_progress. Vous pouvez modifier ces noms 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 Web Kit intégré comme moteur de rendu. 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 Web Kit 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 Web Kit 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,error){})
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 }); Cet exemple utilise la même méthode projet calcSum que l’exemple précédent mais inclut la gestion d’erreurs : $4d.calcSum("alpha", 45, 75, 102.5, 7, function(result, error) { if (error != null) alert( "got error: " + error[0].message); else alert( "got result: " + result); }); 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 l’inspecteur Web au sein des zones Web de vos formulaires. L’inspecteur Web est le débogueur intégré de Web Kit, permettant d’analyser le code et les flux d’information des pages Web. L’inspecteur Web est notamment inclus dans le navigateur Chrome. 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 la nouvelle option Inspect Element dans le menu contextuel de la zone : Lorsque vous sélectionnez cette option, la zone Web est divisée en deux parties et affiche dans la zone inférieure les différents panneaux de l’inspecteur Web : L’inspecteur peut cependant être utilisé dans une fenêtre indépendante. Pour cela, il suffit de cliquer sur le bouton "Unlock in separate windows" en bas à gauche de la zone : L’inspecteur Web est inclus dans le moteur de rendu Web Kit. Pour une description détaillée des fonctionnalités de ce débogueur, veuillez vous reporter à la documentation fournie par Google à l’adresse https://developers.google.com/chrome-developer-tools/docs/scripts 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 :
Sous Windows, les zones Web peuvent prendre en charge l’affichage et la modification de documents Microsoft Office (lorsque Microsoft Office est installé sur le poste). En particulier, les documents Word, Excel et Powerpoint (extensions .doc, .xls et .ppt) peuvent être traités. Le format XML MS Office est également pris en charge. Note : MS Office 2007 ne permet pas par défaut l’affichage de documents dans un navigateur Web, ils sont toujours ouverts dans une nouvelle fenêtre. Vous pouvez modifier ce fonctionnement à l’aide des instructions fournies à cette adresse : http://support.microsoft.com/kb/162059/en-us 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. 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 UTILISATION DE L'ARTICLE
4D - Langage ( 4D v14.3) Hérité de :
Gestion programmée des zones Web ( 4D v13.5) |