Упакуйте приложение 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.