我已经阅读了大量文章和stackoverflow问题,但我似乎无法让它发挥作用。
我想为客户分发一些产品信息,这些信息将通过CD或USB记忆棒发送出去。回到我用Flash做的那些日子。因为flash可以编译成一个名为Flash放映机的EXE,可以在不安装的情况下运行我的Flash内容。
现在我想给HTML5一个旋转。而且我需要一种方法来将所有内容打包在CD上,使其无需安装即可在任何地方运行。
我听说过我可以编译chrome并将其嵌入到c ++应用程序中。 (http://code.google.com/p/chromiumembedded/) 我可以在QtWebkit上使用QT。 (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)。因为内容也应该在不使用插件的情况下部署在Web服务器上......
我不需要访问操作系统。我想要的是我的Jquery / Backbone应用程序,它使用JSON文件在没有安装的桌面客户端中运行。
因此,没有浏览器地址栏只能获取index.html,其他所有内容都由应用处理... 像Fullscreen和Close这样的东西会很好......
不幸的是,我不能依赖“客户操作系统”的已安装浏览器,因为目标组很大,我期待很多旧浏览器。
任何人都可以给我指导如何“轻松”编译一个应用程序,使我的网络应用程序的东西从CD上运行而没有安全警告等等吗?
或者我可以使用任何预编译的包装吗?
答案 0 :(得分:8)
Node-webkit将Chromium(Chrome)浏览器与Node.js结合在一起。据我所知,你不需要额外的API,但你不需要使用它们,只需创建一个非常简短的json文件并且压缩你的项目就足够了,你甚至可以将所有内容组合成一个可执行文件。该项目提供二进制文件,因此无需编译。
答案 1 :(得分:5)
我也尝试过Awesomium(它是c ++和40mb +)PyWebKit(确实有效但我的svg mousemove-listeners没有)因此最终使用了cefpython和pyinstaller。
这就是我刚才所做的“一键式windows-web-app-executable”.exe。
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或图标。
如果在Windows7 64位上构建它,它将无法在32位系统上运行
如果你在WindowsXP 32bit上构建它,它可以在任何地方使用。甚至在葡萄酒中。但不知何故,我无法从标题栏的exe中获取图标。不得不从外部加载它(cefwindow.py中的代码)。
在我还没有新鲜的时候向我询问详细信息!
编辑:
激活本地json请求: #BrowserSettings,请参阅:http://code.google.com/p/cefpython/wiki/BrowserSettings browserSettings = dict() browserSettings [“universal_access_from_file_urls_allowed”] =真 browserSettings [“file_access_from_file_urls_allowed”] = True
答案 2 :(得分:4)
有关概述,请查看Clint Berry的review article。他介绍了TideSDK,AppJS,Node-webkit,Sencha Desktop和Brackets Shell,并列出了每种解决方案的优缺点。
编辑:阅读完评论后,我为自己的项目选择了Node-webkit,效果很好!它不需要您根据任何特定范例构建应用程序。我刚刚采用了我的标准AngularJS Web应用程序,添加了所需的清单文件,并为Windows和OSX构建了它。答案 3 :(得分:2)
正如有人在评论中提到的那样,你可以使用xulrunner 根据这个:https://developer.mozilla.org/en/Getting_started_with_XULRunner 你只需下载xulrunner,将其解压缩到一个文件夹中,配置它并使其在autorun.inf或类似的东西中启动。不需要编译(我认为你需要在windows上呈现它,但其他平台也不应该是一个问题)。
答案 4 :(得分:1)
我为HTML5游戏开发者制作了一个应用程序,如果你想在Windows上运行你的html5游戏或应用程序,就像本机应用程序一样,不需要托管或手动运行本地服务器来访问html5功能。
WinApps Jx Builder是一个应用程序,允许您将HTML5,java脚本,CSS打包到一个可执行文件应用程序中,用于在Windows操作系统上运行Native-Like的Windows。 从现在开始,只需双击即可在桌面上运行HTML5网站,应用程序和游戏,WinApps JX将负责其余的工作。
但您需要在自己的计算机上安装Google Chrome框架:
答案 5 :(得分:1)
您可以使用 IWebBrowser2 在您的C( WinAPI )程序中嵌入浏览器控件。
http://github.com/dns/WinAPI-Embed-Browser/releases
我在github上创建了一个项目,将几个html app pack打包成单个EXE 文件。
要从EXE / DLL资源访问html文件,请使用:res://programname.exe/test.html
作为路径。
您还可以隐藏窗口边框和只显示HTML应用的内容,甚至全屏运行。如果您想制作 交互式CD ,这非常有用。