Упакуйте приложение HTML5 и разверните его на рабочем столе

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

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

Теперь я хочу дать HTML5 вращение. И мне нужен способ собрать все на компакт-диске, чтобы он работал везде без установки.

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

Примеры - большие, и у меня нет навыков С++ = (

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

С бесцветным мой JQuery Javascript не работал и Berkelium... Я не собирался компилировать...

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

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

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

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

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

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

Ответы

Ответ 1

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

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

Ответ 2

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

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

  • загружен cefpython, он поставляется с скомпилированной dll с хромом внутри (20mb)
  • запустите "python cefsimple.py", чтобы увидеть, работает ли он (он должен)
  • сейчас загрузите pyinstaller
  • распаковать, если в какую-либо папку
  • скопируйте все файлы cefpython в вашу недавно созданную папку pyinstaller
  • копировать из pyinstaller/utils MakeSpec.py и Build.py в одну папку вниз
  • запустите "MakeSpec.py cefsimple.py", чтобы создать файл cefsimple.spec для встроенного
  • Если вы попытаетесь запустить "Build.py cefsimple.spec", если скопируете файлы в папку с именем dist
  • Если вы запустите exe, это не сработает, потому что отсутствуют некоторые DLL и значок.
  • позволяет добавить DLL, изменив spec файл (я положил его позже в тексте)
  • Вы снова создадите его, он скопирует значок и все остальное в папку, чтобы exe запустился (вы увидите cefsimple.html в реальном встроенном хромовом кадре).
  • теперь вы можете поиграть либо с вложением, либо с pyhton-кодом, чтобы исправить ваши http-ссылки, и вы получите прекрасный "один клик-окно-веб-приложение-исполняемый файл":-) (см. 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, нет системных библиотек, нет дополнительных библиотек DLL или значков.

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

Если вы построите его на 32-битной WindowsXP, он работает везде. Даже в Вине. Но почему-то я не мог получить значок из 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

Ответ 3

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

EDIT: прочитав обзор, я выбрал Node -webkit для своего собственного проекта, и он отлично работает! Это не требует, чтобы вы создавали приложение в соответствии с какой-либо конкретной парадигмой. Я как раз взял свое стандартное веб-приложение AngularJS, добавил необходимый файл манифеста и построил его для Windows и OSX.

Ответ 4

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

Ответ 5

я сделал приложение для разработчиков игр HTML5, если вы хотите запускать свои html5 игры или приложения в таких окнах, как родные приложения, не нужно размещать или вручную запускать локальный сервер, чтобы получить доступ к функциям html5.

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

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

хромированный фрейм Google

- WinApps Jx -

Ответ 6

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

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

Я создал проект github, чтобы сделать несколько пакетов приложений html в одном файле EXE.

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

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