Я можу вмістити HTML і JavaScript разом у одному .html
файлі, але зображення повинні бути окремими файлами. Єдине рішення, яке мені спадає на думку - це дати користувачеві .zip
папку.
Це не дуже, хоча ... Як ще я можу це зробити?
Я можу вмістити HTML і JavaScript разом у одному .html
файлі, але зображення повинні бути окремими файлами. Єдине рішення, яке мені спадає на думку - це дати користувачеві .zip
папку.
Це не дуже, хоча ... Як ще я можу це зробити?
Відповіді:
Ви можете вбудовувати зображення в документ HTML за допомогою синтаксису dataurl, який дозволяє розмістити base64 подання даних бінарних зображень як src-атрибут зображення. Це також працює на будь-якому іншому мультимедійному файлі.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9EFBAoYMhVvMQIAAAAtSURBVHicY/z//z8DHoBH+v///yy4FDEyMjIwMDDhM3lgpaEuh7gTEzDiDxYA9HEPDF90e5YAAAAASUVORK5CYII=">
Використовуючи таблиці стилів CSS, ви можете створити ці повністю процедурні в JavaScript.
Просто розміщення всіх файлів у .zip-файлі не є прийнятним рішенням, оскільки для більшості веб-додатків потрібен веб-сервер, щоб вони могли отримати доступ до ресурсів через HTTP-запити. У деяких системах ви можете отримувати доступ до файлів за допомогою file://
URI-схеми , але це не гарантується, що працюватиме скрізь із міркувань безпеки і не спрацює з такими речами, як запити AJAX.
Це може працювати для дуже простого додатка, де у вас є більшість ресурсів, але це дійсно не той підхід, який я б рекомендував нікому. Однак існують альтернативи, такі як:
Ви можете упакувати веб-додаток як нативну програму за допомогою Node-Webkit . Ви навіть можете скористатися цим, щоб додати до своєї гри вбудовані функції робочого столу (наприклад, локальні ігри збереження).
Це не " пакет готових " підходів, хоча .. вам, мабуть, доведеться переписати частини програми та записати різні завантажувачі (наприклад, за допомогою настільного додатку ви краще завантажуєте файли через файлову систему, тоді як ви використовуєте HTTP -Запити в браузері / онлайн-грі).
Якщо ваша основна мета - дозволити гравцеві грати у вашу гру в режимі офлайн, ви також можете використовувати кеш-програму, щоб дозволити доступ до програми в автономному режимі. Це функція, яка працює в більшості сучасних браузерів . Додатковою перевагою є те, що користувачеві нічого не потрібно завантажувати і він може просто використовувати закладку для гри у вашу гру навіть у режимі офлайн.
Для ресурсів, які завантажуються асинхронно (AJAX), вам також доведеться реалізувати окремі механізми завантаження. Ви можете скористатися локальним сховищем, щоб зберегти ці ресурси для офлайн-використання.
file:///
отримати доступ до протоколу localStorage
, який працює для економії. Це дозволить зробити все, що можна зробити в грі HTML, крім онлайн-ігри.
Щоб створити на базі Chrome рішення для гри в режимі офлайн і насолодитися деякими нативними функціоналами, ви можете розглянути можливість створення програми Chrome .
Таким чином, ви можете поширити його у веб-магазині Chrome для додаткової наочності, ви можете насолоджуватися деякими потужними API та зробити його більш схожим на окремий додаток .
Мінус, звичайно, вимагає Chrome.
Ну, це залежить від того, скільки роботи ви насправді хочете вкласти в нього. Використовуючи поточний набір веб-API, ви можете:
Cmd+S
або Ctrl+S
в браузері), або кешуйте її як PWA. Просто знайте, що на мобільних пристроях даніURI не працюють дуже добре.zip
файли, оформіть JSZip . Я не маю поняття, як ви можете ним користуватися, але я впевнений, що хтось може придумати гарну ідею (можливо, зашпаркуйте ваш файл, а потім перетворіть бінарні дані в рядок і помістіть їх в рядок у HTML).