Puedo juntar HTML y JavaScript en el mismo .html
archivo, pero las imágenes deben ser archivos separados. La única solución que se me ocurre es darle al usuario una .zip
carpeta.
Sin embargo, esto no es bonito ... ¿De qué otra manera puedo hacer esto?
javascript
html5
distribution
Arnaud
fuente
fuente
Respuestas:
Puede incrustar imágenes en el documento HTML utilizando la sintaxis dataurl que permite colocar la representación base64 de los datos de la imagen binaria como el atributo src de una imagen. Esto también funciona en cualquier otro tipo de archivo multimedia.
Cuando usa hojas de estilo CSS, puede crearlas completamente de procedimiento en JavaScript.
fuente
Simplemente poner todos los archivos en un archivo .zip no es una solución viable porque la mayoría de las aplicaciones web necesitan un servidor web para poder acceder a los recursos a través de solicitudes HTTP. En algunos sistemas, puede acceder a los archivos a través del
file://
esquema URI , pero no se garantiza que funcione en todas partes debido a razones de seguridad y fallará por cosas como las solicitudes AJAX.Podría funcionar para una aplicación muy simple donde tiene la mayoría de los recursos en línea, pero este no es realmente el enfoque que recomendaría a cualquiera. Sin embargo, existen alternativas, tales como:
Crea una aplicación nativa
Puede empaquetar su aplicación web como una aplicación nativa utilizando Node-Webkit . Incluso puede usar esto para agregar características de escritorio nativas (como juegos guardados locales) a su juego.
Sin embargo, este no es un enfoque de " paquete y listo " ... probablemente tendrá que reescribir partes de su aplicación y escribir diferentes cargadores (por ejemplo, con una aplicación de escritorio, preferirá cargar los archivos a través del sistema de archivos, mientras usa HTTP -Solicitudes en un navegador / juego en línea).
Use las funciones HTML5 para permitir el acceso sin conexión de su aplicación
Si su objetivo principal es permitir que el jugador juegue su juego sin conexión, también puede usar el caché de la aplicación para permitir el acceso sin conexión de su aplicación. Esta es una característica que funciona en la mayoría de los navegadores modernos . El beneficio adicional es que el usuario no tiene que descargar nada y solo puede usar un marcador para jugar su juego incluso sin conexión.
Para los recursos que se cargan de forma asincrónica (AJAX), también deberá implementar mecanismos de carga separados. Puede utilizar el almacenamiento local para guardar estos recursos para su uso sin conexión.
fuente
file:///
acceso al protocololocalStorage
, lo que funciona para guardar. Se escalará para hacer cualquier cosa que uno pueda hacer en un juego HTML, excepto el juego en línea.Para una solución basada en Chrome para hacer que el juego se ejecute sin conexión y disfrutar de algunas funciones nativas, puede considerar hacer una aplicación de Chrome .
De esta forma, puede distribuirlo en Chrome Web Store para mayor visibilidad, puede disfrutar de algunas API potentes y hacer que se parezca más a una aplicación independiente .
La desventaja es, por supuesto, requerir Chrome.
fuente
Bueno, depende de cuánto trabajo realmente quieras poner en él. Con el conjunto actual de API web puede:
Cmd+S
oCtrl+S
en el navegador) o guarde en caché la página como PWA. Solo sepa que, en dispositivos móviles, los dataURI no funcionan muy bien.zip
archivo, consulte JSZip . No tengo idea de cómo puede usarlo, pero estoy seguro de que alguien puede tener una buena idea (tal vez comprima su archivo y luego convierta los datos binarios en una cadena y colóquelo en línea en el html).fuente