Ich kann HTML und JavaScript in derselben .html
Datei zusammenfassen, aber die Bilder müssen separate Dateien sein. Die einzige Lösung, die mir in den Sinn kommt, ist, dem Benutzer einen .zip
Ordner zu geben .
Das ist aber nicht schön ... Wie kann ich das sonst noch tun?
javascript
html5
distribution
Arnaud
quelle
quelle
Antworten:
Sie können Bilder in das HTML-Dokument einbetten, indem Sie die dataurl-Syntax verwenden, mit der die base64-Darstellung der binären Bilddaten als src-Attribut eines Bildes definiert wird. Dies funktioniert auch für jede andere Art von Mediendatei.
Wenn Sie CSS-Stylesheets verwenden, können Sie diese vollständig prozedural in JavaScript erstellen.
quelle
Nur alle Dateien in eine .zip-Datei zu packen, ist keine praktikable Lösung, da die meisten Webanwendungen einen Webserver benötigen, um über HTTP-Anfragen auf Ressourcen zugreifen zu können. Auf einigen Systemen können Sie über das
file://
URI-Schema auf Dateien zugreifen , dies funktioniert jedoch aus Sicherheitsgründen nicht überall und schlägt beispielsweise bei AJAX-Anforderungen fehl.Es könnte für eine sehr einfache App funktionieren, in der Sie die meisten Ressourcen inline haben, aber dies ist wirklich nicht der Ansatz, den ich jedem empfehlen würde. Es gibt jedoch Alternativen, wie zum Beispiel:
Erstellen Sie eine native Anwendung
Sie können Ihre Webanwendung mit Node-Webkit als native App verpacken . Sie können dies sogar verwenden, um Ihrem Spiel native Desktop-Funktionen (z. B. lokale Save-Games) hinzuzufügen.
Dies ist jedoch kein " package and done " -Ansatz. Wahrscheinlich müssen Sie Teile Ihrer Anwendung neu schreiben und verschiedene Loader schreiben (z. B. mit einer Desktop-App laden Sie die Dateien lieber über das Dateisystem, während Sie HTTP verwenden -Anfragen in einem Browser / Online-Spiel).
Verwenden Sie HTML5-Funktionen, um den Offline-Zugriff auf Ihre App zu ermöglichen
Wenn Ihr primäres Ziel darin besteht, dem Spieler das Offline-Spielen Ihres Spiels zu ermöglichen, können Sie auch den Anwendungs-Cache verwenden , um den Offline-Zugriff auf Ihre App zu ermöglichen. Dies ist eine Funktion, die in den meisten modernen Browsern funktioniert . Der zusätzliche Vorteil ist, dass der Benutzer nichts herunterladen muss und einfach ein Lesezeichen verwenden kann, um Ihr Spiel zu spielen, auch wenn es offline ist.
Für Ressourcen, die asynchron geladen werden (AJAX), müssen Sie separate Lademechanismen implementieren. Sie können den lokalen Speicher verwenden , um diese Ressourcen für die Offline-Verwendung zu speichern.
quelle
file:///
Zugriff auf das ProtokolllocalStorage
, was sich zum Speichern eignet. Es wird skaliert, um alles zu tun, was man in einem HTML-Spiel tun kann, außer Online-Spielen.Wenn Sie eine Chrome-basierte Lösung benötigen, um das Spiel offline zu schalten und einige native Funktionen zu nutzen, können Sie eine Chrome-App erstellen .
Auf diese Weise können Sie es im Chrome Web Store verteilen, um die Sichtbarkeit zu verbessern, einige leistungsstarke APIs nutzen und es mehr wie eine eigenständige App aussehen lassen .
Der Nachteil ist natürlich Chrome erforderlich.
quelle
Nun, es hängt davon ab, wie viel Arbeit Sie wirklich investieren möchten. Mit den aktuellen Web-APIs können Sie:
Cmd+S
oderCtrl+S
im Browser), oder speichern Sie die Seite als PWA im Cache. Wissen Sie nur, dass dataURIs auf Mobilgeräten nicht sehr gut funktionieren.zip
Datei fortfahren möchten , checken Sie JSZip aus . Ich habe keine Ahnung, wie Sie es verwenden können, aber ich bin sicher, dass jemand eine gute Idee haben kann (zippen Sie möglicherweise Ihre Datei, konvertieren Sie die Binärdaten in einen String und platzieren Sie sie in das HTML-Format).quelle