Application html (portail)

De Wiki1000
(Différences entre les versions)
Ligne 1 : Ligne 1 :
 
Une application HTML est une extension de l'Application Web qui peut être affichée dans un onglet du portail.
 
Une application HTML est une extension de l'Application Web qui peut être affichée dans un onglet du portail.
  
Les applications html soit des archives contenant une structure d'application et un paquet métier.
+
Les applications Html soit des archives contenant une structure d'application et un paquet métier.
  
 
===Création d'une application html===
 
===Création d'une application html===
Ligne 22 : Ligne 22 :
 
[[image:Htmlapp-3.png|600px]]
 
[[image:Htmlapp-3.png|600px]]
  
Une application html peut utiliser n'importe quelle structure de site, toutefois elle doit respecter :
+
Une application Html peut utiliser n'importe quelle structure de site, toutefois elle doit respecter :
  
 
* Utiliser index.html comme page de démarrage.  
 
* Utiliser index.html comme page de démarrage.  
Ligne 58 : Ligne 58 :
 
</pre>
 
</pre>
  
Une application html s'exécute dans la même session que l'Application Web, elle est automatiquement connectée et n'a pas besoin de gérer la connexion de l'utilisateur.
+
Une application Html s'exécute dans la même session que l'Application Web, elle est automatiquement connectée et n'a pas besoin de gérer la connexion de l'utilisateur.
  
Pour communiquer avec le service elle doit exécuter des appels REST sur les méthodes de son paquet de service.
+
{{tip|Si vous souhaitez une application autonome, reportez vous au développement d'application mobiles.}}
 +
 
 +
===Appel de méthode de service===
 +
Pour communiquer avec le service une application Html doit exécuter des appels REST sur les méthodes de son paquet de service.
  
 
Pour bénéficier des cookies de session existants, elle doit utiliser un chemin relatif pour exécuter les appels REST.
 
Pour bénéficier des cookies de session existants, elle doit utiliser un chemin relatif pour exécuter les appels REST.
Ligne 85 : Ligne 88 :
 
     var payload = {id:id};
 
     var payload = {id:id};
 
     doRequestByHttpRequest("htmldemoapplication/welcome",payload, function(data) {  
 
     doRequestByHttpRequest("htmldemoapplication/welcome",payload, function(data) {  
         console.log(data);  
+
         console.log(JSON.parse(data));  
 
     });
 
     });
 
}
 
}
Ligne 91 : Ligne 94 :
  
 
{{tip|Notez l'utilisation du chemin "../../server/sdata/packagename/methodname" pour exécuter les appels de méthodes de service.}}
 
{{tip|Notez l'utilisation du chemin "../../server/sdata/packagename/methodname" pour exécuter les appels de méthodes de service.}}
 +
{{tip|Notez le JSON.parse() sur le résultat de l'appel.}}
 
{{tip|Evitez d'appeler des méthodes d'autres paquets, seul le paquet de service de l'application est automatiquement déployé.}}  
 
{{tip|Evitez d'appeler des méthodes d'autres paquets, seul le paquet de service de l'application est automatiquement déployé.}}  
 +
 +
===Ouverture d'interface dans l'application Web===
 +
Une application Html peut faire référence à une interface de l'application Web.
 +
 +
'''Exemple : ouverture de l'interface "Mon compte" :'''
 +
 +
<source lang="javascript">
 +
 +
function myAccountClick() {
 +
    var payload = {action:"executeLink", uri:"frm://fwuseraccount.dfm", cd:null};
 +
    if (window.parent && window.frameElement) {
 +
        // for security check
 +
        payload.cd = window.parent.$(window.frameElement).data("config");
 +
    }
 +
    window.parent.postMessage(payload,window.parent.origin);
 +
}
 +
</source>
 +
 +
{{tip|Respectez ce code pour passer les validations de sécurité implémentés dans le point d'écoute des messages de l'application Web.}}
 +
  
 
===Administration===
 
===Administration===

Version du 6 février 2020 à 16:36

Une application HTML est une extension de l'Application Web qui peut être affichée dans un onglet du portail.

Les applications Html soit des archives contenant une structure d'application et un paquet métier.

Sommaire

Création d'une application html

Pour créer une une nouvelle application html utilisez l'assistant du concepteur de modèle :

Htmlapp-1.png

Htmlapp-2.png

L'assistant crée un paquet de service correspondant :

Htmlapp-4.png

comprenant une méthode json getData().

Tip-20px.png Tip : Cette méthode est utilisée comme source de données de la vignette JSON

Et déploie l'application dans le site :

Htmlapp-3.png

Une application Html peut utiliser n'importe quelle structure de site, toutefois elle doit respecter :

  • Utiliser index.html comme page de démarrage.
  • Inclure les éléments de style et de code de manière relative.
  • Inclure un fichier manifest.json (automatiquement généré par l'assistant)
  • Inclure un fichier tabbin (automatiquement généré par l'assistant)

Par exemple:

<!DOCTYPE>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/demo.css">
<script src="js/demo.js"></script>
<style>
body {
    margin: 0px;
    padding: 0px;
	border: 0px;
	background-color: transparent;
}
</style>
</head>
<body onload="refresh();">
<p class="agencies">List of agency</p>
<div id="agencies"></div>
<script>
function refresh() {
	render();
}
</script>
</body>
</html>

Une application Html s'exécute dans la même session que l'Application Web, elle est automatiquement connectée et n'a pas besoin de gérer la connexion de l'utilisateur.

Tip-20px.png Tip : Si vous souhaitez une application autonome, reportez vous au développement d'application mobiles.

Appel de méthode de service

Pour communiquer avec le service une application Html doit exécuter des appels REST sur les méthodes de son paquet de service.

Pour bénéficier des cookies de session existants, elle doit utiliser un chemin relatif pour exécuter les appels REST.

Par exemple :

function doRequestByHttpRequest(uri, payload, onSuccess) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      if (onSuccess) onSuccess(this.response);
    }
  };
  var url = "../../server/sdata/"+uri;
  xhttp.open("POST", url, true);
  xhttp.setRequestHeader("Accept", "application/json");
  xhttp.setRequestHeader("Content-type", "application/json; charset=UTF-8");
  xhttp.send(JSON.stringify(payload));
}
 
function doAgencyAction(id) {
    // Require a service package "htmdemoapplication" with "welcome" service method.
    var payload = {id:id};
    doRequestByHttpRequest("htmldemoapplication/welcome",payload, function(data) { 
        console.log(JSON.parse(data)); 
    });
}
Tip-20px.png Tip : Notez l'utilisation du chemin "../../server/sdata/packagename/methodname" pour exécuter les appels de méthodes de service.
Tip-20px.png Tip : Notez le JSON.parse() sur le résultat de l'appel.
Tip-20px.png Tip : Evitez d'appeler des méthodes d'autres paquets, seul le paquet de service de l'application est automatiquement déployé.

Ouverture d'interface dans l'application Web

Une application Html peut faire référence à une interface de l'application Web.

Exemple : ouverture de l'interface "Mon compte" :

function myAccountClick() {
    var payload = {action:"executeLink", uri:"frm://fwuseraccount.dfm", cd:null};
    if (window.parent && window.frameElement) {
        // for security check
        payload.cd = window.parent.$(window.frameElement).data("config");
    }
    window.parent.postMessage(payload,window.parent.origin);
}
Tip-20px.png Tip : Respectez ce code pour passer les validations de sécurité implémentés dans le point d'écoute des messages de l'application Web.


Administration

Les applications html sont visibles dans l'administration :

Htmlapp-5.png

Menu du portail

Htmlapp-6.png

Outils personnels