Bonsoir à tous et toutes,
Premier message sur ce site que je vais suivre de très près .
J'aurais besoin, si vous le voulez bien, de votre avis sur ma démarche concernant un projet.
Je m'excuse platement tout d'abord, je suis débutante en programmation. J'espère déjà être dans la bonne section, sinon je réitère toutes mes excuses.
Le contexte : une grosse appli client léger en JSP. Cette appli est prévue pour fonctionner avec des périphériques. Or un périphérique est branché sur un pc client. Normalement le client accède à l'appli Web via son WebBrowser habituel. L'appli Web tape dans une BDD pour connaître quel périphérique le client a associé à son pc. Via Javascript, l'appli Web fait apparaître sur une page JSP un lien (déguisé en bouton par CSS) relatif au périphérique trouvé dans la BDD avec un Id (identifiant) unique.
C'est le pc client où est branché le périphérique qui prends en charge le traitement relatif au périphérique (disons l'apparition d'une boîte de dialogue factice avec le nom du périphérique), quand le client clique sur le bouton de l'appli Web.
La problématique : le pc client doit savoir ce que contient la page Web pour être à l'écoute du "bouton" apparu.
Je n'ai pas le droit d'ouvrir des ports entre le pc client et le Web.
Comment j'ai fais : J'ai développé une appli client lourd en Swing composé d'une JFrame vide et d'un JEditorPane, donc capable de se connecter à l'appli Web, d'afficher ses pages, et de gérer les hyperliens (un navigateur Web en fait, qui ne change rien à l'utilisation de l'appliWeb mais permet de gérer les périphériques).
Je parse l'HTML affiché, détecte l'éventuel "bouton", y ajoute un Listener et au clic du client dessus mon appli client lourd lance la boîte de dialogue factice correspondante.
Bien sûr... L'objet JEditorPane ne gère pas le HTML supérieur à 3.2, quasiment pas le CSS et pas du tout le Javascript. Donc je suis repartie sur JavaFX et sa classe WebView qui gère tout ça bien mieux. C'est juste grave la galère avec le parse du Document affiché (dont je ne suis pas du tout sûre d'utiliser la meilleure méthode), la récupération de l'Id du "bouton" et le Listener... Je trouve très peu d'aides là-dessus sur le net.
Pour vous en dire un peu plus, je suis en stage pour être développeuse Java, et ça c'est ce qu'on m'a demandé de faire. J'aimerais avoir l'avis des gens qui passent par là, pour savoir si la solution choisie tient debout, si vous avez d'emblée pensé à une autre solution, si JavaFX est un bon choix, enfin tout ce que vous auriez envie de me dire sur le sujet .
Une question précise : y'a t-il un moyen de faire communiquer un navigateur Web classique (type FireFox, Chrome, ...) avec son pc ?
J'ai honte je n'y connais rien, mais lorsqu'on clique sur un lien de téléchargement sur le Web par exemple, c'est bien notre pc qui affiche la boîte de dialogue permettant de choisir le dossier de destination du téléchargement ? Ca (mea culpa, je ne sais toujours pas faire les ç majuscules) semble être le fonctionnement dont j'ai besoin, mais je ne trouve rien sur le sujet qui soit exploitable pour mon projet. Quelqu'un sait comment ça fonctionne ? J'imagine qu'il y a des sécurités qui empêchent toute autre autre interaction entre le navigateur et le pc, mais quoi ? Le firewall ?
Si besoin de détails supplémentaires si le sujet vous intéresse, n'hésitez pas je serai à l'affut de vos éventuelles réponses.
Mille merci,
Bonne soirée
Partager