Je travaille sur une application Web qui a besoin de données qu'elle ne peut obtenir qu'à partir de son navigateur d'application natif installé localement.
Comment contourner le sandbox du navigateur pour pouvoir communiquer (en toute sécurité, car les données sont potentiellement sensibles), avec une application native.
Dans le seul exemple que j'ai trouvé, l'utilisateur déplace manuellement certains jetons et fichiers entre les deux, ce qui est une expérience utilisateur horrible que j'aimerais éviter.
web-applications
Zak Kus
la source
la source
Réponses:
Vous pouvez intégrer un serveur Web dans l'application native, puis votre client peut l'appeler via des liens codés en dur vers http: // localhost / xyz (vous devrez peut-être vous soucier des avertissements de script intersite ici et / ou exécuter le serveur sur un port non http). Si vous utilisez des websockets, votre application native peut même envoyer des données au navigateur Web une fois que le navigateur a initié la communication.
Je le fais moi-même localement, un contrôle de navigateur Web intégré demande des données de visualisation à partir d'un serveur Web personnalisé et lors du développement, je lance les deux sur le même PC.
Il existe de nombreux serveurs Web intégrés minuscules et efficaces pour C / C ++ (Mongoose, NxWeb, civetweb, etc.), C # a tendance à opter pour un serveur WCF complet, python est livré avec un petit serveur Web IIRC.
la source
Il existe plusieurs façons de mélanger une application native et une application de navigateur.
Vous pouvez intégrer le navigateur dans l'application native, tout comme les applications PhoneGap sur mobile. Cela vous permettra d'étendre le moteur javascript du navigateur et de passer des appels entre les deux.
Vous pouvez également repenser votre architecture. Demandez à l'application native et à l'application basée sur un navigateur d'utiliser le serveur comme intermédiaire. Ainsi, le navigateur et l'application native ne parlent qu'au serveur Web, qui transmet les informations entre les deux si nécessaire.
Ou si vous avez besoin de fonctionnalités natives ... créez simplement une seule application native.
Je ne recommande pas l'approche du «serveur Web local» pour autre chose que les applications exécutées dans des environnements contrôlés. Si votre logiciel est destiné à être installé et exécuté sur des machines d'utilisateur final avec des exigences de support minimales, vous vous retrouverez face à une multitude de problèmes liés au pare-feu et aux logiciels antivirus.
la source