Estoy trabajando en una aplicación web que necesita datos que solo puede obtener de su navegador de aplicaciones nativas instalado localmente.
¿Cómo puede moverse por el entorno limitado del navegador para poder comunicarse (de forma segura, ya que los datos son potencialmente confidenciales) con una aplicación nativa?
En el único ejemplo que encontré, el usuario movió manualmente algunos tokens y archivos entre los dos, lo cual es una experiencia de usuario horrible que me gustaría evitar.
web-applications
Zak Kus
fuente
fuente
Respuestas:
Puede incrustar un servidor web en la aplicación nativa, luego su cliente puede hacer llamadas a él a través de enlaces codificados a http: // localhost / xyz (es posible que deba preocuparse por las advertencias de secuencias de comandos de sitios cruzados aquí y / o ejecutar el servidor en un puerto no http). Si usa websockets, su aplicación nativa puede incluso enviar datos al navegador web una vez que el navegador ha iniciado la comunicación.
Lo hago yo mismo localmente, un control de navegador web incorporado solicita datos de visualización de un servidor web personalizado y, cuando lo desarrollo, ejecuto ambos en la misma PC.
Hay muchos servidores web integrados pequeños y eficientes para C / C ++ (Mongoose, NxWeb, civetweb, etc.), C # tiende a elegir un servidor WCF completo, python viene con un pequeño servidor web en su IIRC.
fuente
Hay un par de formas en que puede mezclar una aplicación nativa y una aplicación de navegador.
Puede incrustar el navegador dentro de la aplicación nativa, al igual que las aplicaciones PhoneGap en dispositivos móviles. Eso le permitirá extender el motor de JavaScript del navegador y le permitirá hacer llamadas entre los dos.
Alternativamente, reconsidere su arquitectura. Haga que tanto la aplicación nativa como la aplicación basada en navegador utilicen el servidor como intermediario. Entonces, tanto el navegador como la aplicación nativa solo se comunican con el servidor web, que reenvía la información entre los dos según sea necesario.
O si necesita funcionalidad nativa ... simplemente haga una sola aplicación nativa.
No recomiendo el enfoque de 'servidor web local' para nada que no sean aplicaciones que se ejecutan en entornos controlados. Si su software está destinado a instalarse y ejecutarse en máquinas de usuarios finales con requisitos mínimos de soporte, se encontrará con una gran cantidad de problemas relacionados con el firewall y el software antivirus.
fuente