HTML5 Desktop Wrapper/Framework

В настоящее время я нахожусь в середине пути создания приложения HTML5.

Мне бы очень хотелось развернуть это на рабочем столе, и я рассмотрел такие решения, как Sencha, но не повезло (я обнаружил, что Sencha разочаровывает и разочаровывает в работе). Мне нужна совместимость с перекрестными платформами и простота развертывания, но я не нашел ничего открытого или коммерческого, похоже, что он мог эффективно выполнять эту работу.

Может ли кто-нибудь с некоторым опытом предложить структуру, которая может быть подходящей для упаковки и развертывания приложения HTML5 на рабочем столе? Конечным требованием этого является то, что он будет функционировать как на Mac OS, так и на Windows, но на данный момент Windows сама по себе великолепна.

Я рассмотрел вопрос о создании оболочки С#, которая будет отображать HTML5, но решение может уже существовать, что я пропустил.

Я был бы признателен за любые ответы от кого-то, у кого есть опыт - другие вопросы, связанные с этим на SO, не описывают решение, с которым "спросил".

Ответ 1

Результаты после исследования этой темы в течение пары недель:

  • Node-Webkit - время выполнения приложения на основе Chromium (которое также поддерживает Google Chrome) и node.js. Вы можете писать собственные приложения в HTML и JavaScript с помощью node -webkit. Он также позволяет вам вызывать модули node.js непосредственно из DOM и обеспечивает новый способ написания собственных приложений со всеми веб-технологиями. Он создан и разработан в Центре технологий Intel с открытым исходным кодом.
  • Adobe AIR - Широко используется, но с большой зависимостью от поставщика и без поддержки Linux.
  • PHP Desktop - Не позволяйте имени обмануть вас, PHP Desktop также может выступать в роли упаковщика для чистых приложений HTML5/JS. Он включает браузер Chromium и веб-сервер. Отправка PHP-интерпретатора не требуется. PHP Desktop не сильно привязан к PHP, он также может выступать в качестве пакета для любых других языков сценариев, таких как Perl, Ruby, Python, которые предоставляют интерфейс CGI для выполнения сценариев.
  • XULRunner - Преимущество непосредственно в усилиях по разработке Firefox - это очень ухоженное решение с большой поддержкой кросс-платформенных приложений, - существующие инструменты или документацию для упаковки и распространения, отличные от приложений Firefox и других приложений на основе XULRunner с открытым исходным кодом. UPDATE 2013-06-15: Webapp XUL Wrapper ниже решает эти проблемы.
  • Chrome Web Apps - Хороший вариант, если вам нужна только ссылка на ваше веб-приложение со своего домашнего экрана Chrome.
  • Chrome Installable Web Apps - Как веб-приложение Chrome с большей интеграцией рабочего стола. Нет поддержки флэш-памяти.
  • Mozilla Open Web Apps - Хороший вариант, если все, что вам нужно, - это ссылка на ваше веб-приложение с главного экрана Firefox.
  • Встроенные веб-приложения Mozilla - Как и Mozilla Open Web App с лучшей интеграцией с настольными системами. По-прежнему требуется онлайн-установка через Marketplace Firefox.
  • Flash-проектор - Стоит отметить недорогое решение для упаковки приложений на базе Flash в качестве автономных настольных приложений.
  • AppJS (Node.js) - Перспективный проект, но с небольшой активностью
  • Bellite Toolkit - коммерческое предложение, предназначенное для небольшого веса библиотеки размером около 1 МБ, что на 70x - 100x меньше, чем аналогичное Основанные на хром Embedded. Архитектура с несколькими процессами позволяет использовать Node, Python, Ruby, PHP или общие исполняемые файлы. (Примечание. В окнах требуется использование Modernizr (JS shim) в приложении, поскольку BELL переключается с Chrome Frame для использования Internet Explorer)
  • Webapp XUL Wrapper - оболочка на основе XUL и скрипты сборки для упаковки webapp в распространяемые пакеты для Mac, Windows и Linux.
  • Brackets Shell - потрясающая оболочка, созданная командой brackets.io. В комплекте с инструкциями по установке и инструментами построения Grunt. Подробнее здесь: http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • Atom Shell - оболочка, созданная командой atom.io. Он основан на node.js и Chromium и используется в редакторе Atom.

Подробный обзор текущего состояния вещей и многое другое: http://blog.neamlabs.com/post/36584972328/2012-11-26-web-app-cross-platform-desktop-distribution

Еще один полу-подробный обзор находится здесь: http://clintberry.com/2013/html5-apps-desktop-2013/

Больше не активен/поддерживается:

Ответ 2

Вы когда-нибудь находили для этого ответ? Если так, я хотел бы услышать это, потому что я не думаю, что он существует, и я хочу отчаянно.

Вот что я встретил при поиске того же:

1) Adobe Air: поддерживает Windows и Mac. Выпустил поддержку Linux после версии 2.?. Предположительно, если вы избегаете функций 3.0, вы все равно можете использовать ранее распространенную версию LInux.

2) AppJS.org: NodeJS + Chromium. Поддержка Windows, Linux и Mac (только 32-разрядная версия). Отсутствие поддержки 64 бит убивает его для меня. Они говорят, что они работают над этим, но я боюсь, что они просто ждут, когда Google добавит 64-битную поддержку Mac для Chromium. Не знаю, когда это произойдет.

3) Титановый рабочий стол: Заброшен Апплетером в пустыню с открытым исходным кодом. Вряд ли можно использовать сейчас и никаких гарантий относительно будущего.

3) XULRunner: Звучит многообещающе, но я столкнулся с ошибкой сборки на Mac, которая остановила меня. Я собираюсь попробовать последнюю версию прямо сейчас.

4) Python + Tkinter: Хотя это решение python, а не HTML5, это то, что я сейчас использую. В сочетании с Py2App и Py2Exe кажется, что это может сработать.

В целом, я крайне расстроен из-за состояния вещей прямо сейчас.

Ответ 3

ярлыки приложений Chrome работают в Windows и Linux.

Это позволит вашему приложению работать в своем собственном окне, и это может занять около трех секунд; он, однако, не отвечает всем вашим потребностям.

Ответ 4

Я решил использовать платформу Awesomium (www.awesomium.com).

Это позволяет мне полностью использовать "веб-стек", в то же время легко развертывая легкое решение для клиента.