Упакуйте приложение HTML5 и разверните его на рабочем столе - PullRequest
14 голосов
/ 29 февраля 2012

Я прочитал тонны статей и вопросов по stackoverflow, но мне кажется, что он не работает.

Я хочу распространить некоторую информацию о продукте для клиента, которая будет отправлена ​​на CD или USB-накопитель. В те дни, когда я делал это с Flash. Потому что flash может быть скомпилирован в EXE-файл под названием Flash-проектор и может запускать мой Flash-контент без установки.

Теперь я хочу показать HTML5. И мне нужен способ упаковать все на CD и заставить его работать везде без установки.

Я слышал что-то, что я мог скомпилировать хром и встроить его в приложение C ++. (http://code.google.com/p/chromiumembedded/) Я мог бы использовать QT с QtWebkit. (http://developer.qt.nokia.com/doc/qt-4.8/qtwebkit.html) Я мог бы скомпилировать Webkit и встроить его в приложение C ++ ... (http://www.webkit.org/)

Примеры велики, и у меня нет навыков C ++ = (

Тогда есть такие проекты, как Mozilla Chromeless (http://mozillalabs.com/chromeless) (и Berkelium (https://github.com/sirikata/berkelium)

)

С Chromeless мой JQuery Javascript не работал, а Berkelium ... Я не смог скомпилировать ...

У меня нет бюджета для http://www.appcelerator.com/ или других платных / коммерческих опций ... (также Flash / Air и Silverlight не являются опцией). Поскольку контент также должен быть развернут на веб-сервере без использования плагинов ...

Мне не нужен доступ к ОС. Что мне нужно, так это мое приложение Jquery / Backbone, которое использует файлы JSON для запуска в настольном клиенте без установки.

Так что никакой адресной строки браузера просто не забрать index.html, а все остальное обрабатывается приложением ... Было бы неплохо что-то вроде Fullscreen и Close ...

К сожалению, я не могу полагаться на установленный браузер "ОС клиента", потому что целевая группа слишком большая, и я ожидаю много старых браузеров.

Может ли кто-нибудь дать мне инструкцию, как "легко" скомпилировать приложение, которое позволяет моему веб-приложению работать на рабочем столе с компакт-диска без предупреждений о безопасности и т. Д.?

Или есть какие-нибудь предварительно скомпилированные пакеты, которые я мог бы использовать?

Ответы [ 6 ]

8 голосов
/ 04 октября 2012

Node-webkit объединяет браузер Chromium (Chrome) с Node.js. Насколько я понимаю, вам не нужны дополнительные API, но вам не нужно их использовать, достаточно просто создать действительно короткий файл json и сжать ваш проект, и вы даже можете объединить все в один исполняемый файл. В проекте предусмотрены двоичные файлы, поэтому компиляция не требуется.

https://github.com/rogerwang/node-webkit

5 голосов
/ 04 октября 2012

Я также попробовал Awesomium (это c ++ и 40mb +) PyWebKit (работал, но мои слушатели svg mousemove-слушатели не сделали), поэтому я использовал cefpython и pyinstaller.

Вот что я только что сделал, чтобы получить «exe-файл-щелчок-окна-веб-приложения» .exe.

  • скачано cefpython , поставляется с скомпилированным dll с хромом внутри (20 МБ)
  • запустите "python cefsimple.py", чтобы увидеть, работает ли он (должен)
  • сейчас загрузите pyinstaller
  • распаковать, если в какую-то папку
  • скопировать все файлы cefpython в только что созданную папку pyinstaller
  • копирование из pyinstaller / utils MakeSpec.py и Build.py на одну папку вниз
  • запустить «MakeSpec.py cefsimple.py», чтобы создать файл cefsimple.spec для встроенного
  • Если вы попытаетесь запустить «Build.py cefsimple.spec», if скопирует файлы в папку с именем dist
  • если вы запустите exe-файл, он не будет работать, потому что некоторые библиотеки и значок отсутствуют
  • давайте добавим dll, изменив spec-файл (я добавлю его позже в текст)
  • если вы соберете его снова, он скопирует значок и все остальное в папку, чтобы запустить исполняемый файл (вы увидите cefsimple.html в реальном встроенном кадре хрома)
  • теперь вы можете поиграть либо с встраиванием, либо с помощью pyhton-кода, чтобы исправить ваши http-ссылки, и вы получите прекрасный "один клик-windows-web-app-исполняемый файл" :-) (см. - опция onefile в документации по pyinstaller)

cefsimple.spec:

# -*- mode: python -*-
a = Analysis(['cefsimple.py'],
             pathex=['c:\\pyinstaller-2.0'],
             hiddenimports=[],
             hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
           [('icudt.dll', 'icudt.dll', 'BINARY')],
               [('avcodec-54.dll', 'avcodec-54.dll', 'BINARY')],
               [('libEGL.dll', 'libEGL.dll', 'BINARY')],
               [('avformat-54.dll', 'avformat-54.dll', 'BINARY')],
               [('avutil-51.dll', 'avutil-51.dll', 'BINARY')],
               [('d3dcompiler_43.dll', 'd3dcompiler_43.dll', 'BINARY')],
               [('d3dx9_43.dll', 'd3dx9_43.dll', 'BINARY')],
               [('libGLESv2.dll', 'libGLESv2.dll', 'BINARY')],
               [('locales\\en-US.pak', 'locales\\en-US.pak', 'DATA')],
               [('icon.ico', 'icon.ico',  'BINARY')],
          a.zipfiles,
          a.datas,
          name=os.path.join('dist', 'cefsimple.exe'),
          debug=False,
          strip=None,
          upx=True,
          console=False, icon='icon.ico' )
app = BUNDLE(exe,
             name=os.path.join('dist', 'cefsimple.exe.app'))

Если он должен работать на любой Windows 2000+, ни на Python, ни на системных библиотеках, ни на дополнительных библиотеках, ни на иконках.

Если вы построите его на 64-битной Windows7, он не будет работать на 32-битных системах

Если вы собираете его на WindowsXP 32bit, он работает везде. Даже в вине. Но почему-то я не смог достать значок из exe для заголовка. пришлось загрузить его с внешнего (код в cefwindow.py).

Спроси у меня подробности, пока еще свежо!

EDIT:

для активации локальных запросов json: # BrowserSettings, см .: http://code.google.com/p/cefpython/wiki/BrowserSettings browserSettings = dict () browserSettings ["universal_access_from_file_urls_allowed"] = True browserSettings ["file_access_from_file_urls_allowed"] = True

4 голосов
/ 10 октября 2013

Для хорошего обзора, прочитайте эту обзорную статью Клинта Берри.Он рассказывает о TideSDK, AppJS, Node-webkit, Sencha Desktop и Brackets Shell и перечисляет плюсы и минусы каждого решения.

РЕДАКТИРОВАТЬ: прочитав обзор, я выбрал Node-webkit для своего собственного проектаэто прекрасно работает!Это не требует от вас создания приложения в соответствии с какой-либо конкретной парадигмой.Я просто взял свое стандартное веб-приложение AngularJS, добавил необходимый файл манифеста и собрал его для Windows и OSX.

2 голосов
/ 09 мая 2012

, как кто-то упоминал в комментариях, вы можете использовать xulrunner в соответствии с этим: https://developer.mozilla.org/en/Getting_started_with_XULRunner Вы просто скачиваете xulrunner, распаковываете его в папку, настраиваете и запускаете в autorun.inf или что-то в этом роде компиляция не требуется (я предполагаю, что вам нужно представить ее на windows, но другие платформы также не должны быть проблемой).

1 голос
/ 04 марта 2015

Вы можете встроить управление браузером в свою программу C ( WinAPI ), используя IWebBrowser2 .

http://github.com/dns/WinAPI-Embed-Browser/releases

Я создалпроект на github для создания нескольких html-приложений в одном файле EXE .

Для доступа к html-файлам из ресурса EXE / DLL используйте: res://programname.exe/test.html в качестве пути.

также может скрыть границу окна и просто показывать содержимое вашего HTML-приложения или даже работать в полноэкранном режиме.Это очень полезно, если вы хотите сделать интерактивный CD .

1 голос
/ 29 января 2014

Я создал приложение для разработчиков игр HTML5, если вы хотите запускать html5-игры или приложения на окнах, таких как нативные приложения, не нужно размещать или запускать локальный сервер вручную для доступа к функциям html5.* WinApps Jx Builder - это приложение, которое позволяет упаковать HTML5, java-скрипт, CSS в одно исполняемое приложение для окон, которые работают под управлением Native-Like в ОС Windows.Отныне вы будете запускать веб-сайты HTML5, приложения, игры на Desktope одним щелчком мыши, а WinApps JX позаботится об остальном.

Но вам нужно установить Google Chrome Frame на свой компьютер:

Google Chrome Frame

- WinApps Jx -

...