Posso reunir o HTML e o JavaScript no mesmo .html
arquivo, mas as imagens precisam ser arquivos separados. A única solução que me vem à mente é dar uma .zip
pasta ao usuário .
Mas isso não é bonito ... De que outra forma eu posso fazer isso?
Posso reunir o HTML e o JavaScript no mesmo .html
arquivo, mas as imagens precisam ser arquivos separados. A única solução que me vem à mente é dar uma .zip
pasta ao usuário .
Mas isso não é bonito ... De que outra forma eu posso fazer isso?
Respostas:
Você pode incorporar imagens no documento HTML usando a sintaxe dataurl, que permite colocar a representação base64 dos dados da imagem binária como o atributo src de uma imagem. Isso também funciona em qualquer outro tipo de arquivo de mídia.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9EFBAoYMhVvMQIAAAAtSURBVHicY/z//z8DHoBH+v///yy4FDEyMjIwMDDhM3lgpaEuh7gTEzDiDxYA9HEPDF90e5YAAAAASUVORK5CYII=">
Ao usar folhas de estilo CSS, você pode criá-las completamente procedurais em JavaScript.
Colocar todos os arquivos em um arquivo .zip não é uma solução viável, porque a maioria dos aplicativos da Web precisa de um servidor da Web para que eles possam acessar recursos por meio de solicitações HTTP. Em alguns sistemas, você pode acessar arquivos através do file://
esquema URI , mas isso não garante que funcione em qualquer lugar por motivos de segurança e falhará em itens como solicitações AJAX.
Pode funcionar para um aplicativo muito simples, onde você tem mais recursos embutidos, mas essa não é a abordagem que eu recomendaria a ninguém. Existem alternativas, como:
Você pode empacotar seu aplicativo Web como um aplicativo nativo usando o Node-Webkit . Você pode até usar isso para adicionar recursos nativos da área de trabalho (como jogos salvos locais) ao seu jogo.
Porém, essa não é uma abordagem de " pacote e pronto ". Você provavelmente terá que reescrever partes do seu aplicativo e escrever carregadores diferentes (por exemplo, com um aplicativo de desktop, você prefere carregar os arquivos pelo sistema de arquivos, enquanto usa HTTP - Pedidos em um navegador / jogo online).
Se seu objetivo principal é permitir que o jogador jogue offline, você também pode usar o cache do aplicativo para permitir o acesso offline ao seu aplicativo. Esse é um recurso que funciona na maioria dos navegadores modernos . O benefício adicional é que o usuário não precisa baixar nada e pode usar apenas um marcador para jogar seu jogo, mesmo quando está offline.
Para recursos que estão sendo carregados de forma assíncrona (AJAX), você também precisará implementar mecanismos de carregamento separados. Você pode usar o armazenamento local para salvar esses recursos para uso offline.
file:///
acesso ao protocolo localStorage
, o que funciona para salvar. Ele será escalado para fazer o que for possível em um jogo HTML, exceto o jogo online.
Para que uma solução baseada no Chrome torne o jogo offline e desfrute de algumas funcionalidades nativas, considere criar um aplicativo do Chrome .
Dessa forma, você pode distribuí-lo na Chrome Web Store para aumentar a visibilidade, aproveitar algumas APIs poderosas e parecer mais um aplicativo independente .
A desvantagem é, obviamente, exigir o Chrome.
Bem, depende de quanto trabalho você realmente deseja colocar nele. Usando o conjunto atual de APIs da Web, você pode:
Cmd+S
ou Ctrl+S
no navegador) ou a cache da página como um PWA. Apenas saiba que, no celular, os dataURIs não têm um desempenho muito bom.zip
arquivo, faça o check-out do JSZip . Não tenho idéia de como você pode usá-lo, mas tenho certeza de que alguém pode ter uma boa idéia (talvez zipe seu arquivo e depois converta os dados binários em string e coloque-os em linha no html).