pasar - llamar javascript desde html
¿Cómo desarrollar aplicaciones de escritorio usando HTML/CSS/JavaScript? (9)
Primero, no estoy interesado en hacer esto profesionalmente. Soy un desarrollador web, un compañero de trabajo recientemente se fue para Spotify y dijo que trabajará principalmente en JavaScript para la aplicación Spotify Desktop. Dijo que usa "Marco de Chrome" y que todo lo que está dentro se hace como una aplicación web (HTML / JS / CSS).
Como desarrollador web que nunca construyó nada para Desktop, esta es una gran noticia. Si puedo usar las tecnologías que ya conozco e implementarlas dentro de una especie de "marco" y aún así poder construir una aplicación de Windows o mejor aún una plataforma cruzada.
Sé que no mencioné nada sobre la base de datos, pero incluso una simple aplicación de escritorio hello world con tecnologías web sería genial para poner en marcha.
Entonces, ¿cómo se hace esto? ¿Qué necesito / necesito saber exactamente?
NW.js
(Anteriormente conocido como node-webkit)
Sugeriría NW.js si está familiarizado con Node o tiene experiencia con JavaScript.
NW.js es un tiempo de ejecución de la aplicación basado en Chromium y node.js.
Caracteristicas
- Aplicaciones escritas en HTML5 moderno, CSS3, JS y WebGL
- Soporte completo para las API de Node.js y todos sus módulos de terceros.
- Buen rendimiento: Node y WebKit se ejecutan en el mismo hilo: las llamadas a funciones se realizan de forma directa; los objetos están en el mismo montón y pueden referirse entre sí
- Fácil de empaquetar y distribuir aplicaciones
- Disponible en Linux, Mac OS X y Windows
Puede encontrar el repositorio NW.js here , y una buena introducción a NW.js here . Si te apetece aprender Node.js , recomendaría this publicación SO con muchos buenos enlaces.
CEF ofrece mucha flexibilidad y opciones para la personalización. Pero si la intención es desarrollar rápidamente node-webkit también es una buena opción. El kit web de nodo también ofrece la capacidad de llamar módulos de nodo directamente desde DOM.
Si no hay módulos nativos para integrar Node-Webkit puede ofrecer un mejor kilometraje. Con módulos nativos C / C ++ o incluso C #, es mejor con CEF.
Parece que las soluciones para las aplicaciones de escritorio HTML / JS / CSS no son pocas.
Una solución que acabo de encontrar es TideSDK: http://www.tidesdk.org/ , que parece muy prometedor, mirando la documentación.
Puede desarrollarlo con Python, PHP o Ruby y empaquetarlo para Mac, Windows o Linux.
Puede comenzar con Titanium para el desarrollo de escritorio. También puede echar un vistazo a Chromium Embedded Framework . Básicamente es un control de navegador web basado en cromo.
Está escrito en C ++ para que pueda hacer todas las cosas de bajo nivel del sistema operativo que desee (Growl, íconos de bandeja, acceso a archivos locales, puertos de com, etc.) en su aplicación de contenedor, y luego toda la lógica y gui de la aplicación en html / javascript. Le permite interceptar cualquier solicitud http para servir recursos locales o realizar alguna acción personalizada. Por ejemplo, una solicitud a http://localapp.com/SetTrayIconState?state=active podría ser interceptada por el contenedor y luego llamar a la función C ++ para actualizar el icono de la bandeja.
También le permite crear funciones a las que se puede llamar directamente desde JavaScript.
Es muy difícil depurar JavaScript directamente en CEF. No hay soporte para nada como Firebug.
También puede probar AppJS.com (ayuda a crear aplicaciones de escritorio para Linux, Windows y Mac usando HTML, CSS y JavaScript)
Además, como lo señaló @Clint, el equipo de brackets.io (Adobe) creó un shell increíble utilizando Chromium Embedded Framework que hace que sea mucho más fácil comenzar. Se llama shell de corchetes: github.com/adobe/brackets-shell Obtenga más información al respecto aquí: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
Puede crear aplicaciones de JavaScript con Adobe AIR ... http://www.adobe.com/products/air.html
Sé que hay Fluid y Prism (hay otros, ese es el que solía usar) que te permiten cargar un sitio web en lo que parece una aplicación independiente.
En Chrome, puede crear accesos directos de escritorio para sitios web. (lo haces desde Chrome, no puedes / no debes empaquetar eso con tu aplicación) Chrome Frame es diferente:
Google Chrome Frame es un complemento diseñado para Internet Explorer basado en el proyecto de fuente abierta Chromium; trae las tecnologías web abiertas de Google Chrome a Internet Explorer.
Necesitarías tener algún tipo de envoltorio así para tu aplicación web, y luego el resto son las tecnologías web a las que estás acostumbrado. Puede usar el almacenamiento local HTML5 para almacenar datos mientras la aplicación está fuera de línea. Creo que incluso podrías trabajar con SQLite.
Sin embargo, no sé cómo harías para acceder a las características específicas del sistema operativo. Lo que describí anteriormente tiene las mismas limitaciones que cualquier sitio web "regular". Con suerte, esto le da algún tipo de orientación sobre dónde empezar.
Lamento romper tu burbuja, pero el cliente de escritorio de Spotify es solo un navegador basado en Webkit . Por supuesto, expone funciones adicionales específicas, pero solo puede ejecutar JS y renderizar HTML / CSS porque tiene un motor JS y un motor de renderizado Chromium. Esto no lo ayuda con la codificación de una aplicación web del lado del cliente y la implementación en múltiples plataformas.
Lo que está buscando es similar a Sencha Touch , un marco que permite que las aplicaciones HTML5 se implementen de forma nativa en dispositivos iOS, Android y Blackberry. Básicamente actúa como intermediario entre ciertas llamadas API y funcionalidades específicas del dispositivo disponibles.
No tengo experiencia con el appcelerator , parece que está haciendo exactamente eso, y recibe críticas muy favorables en línea. Debes intentarlo (a menos que quieras volver a 1999 y rodar con MS HTA ;)