windows xp使用cef3定制浏览器,无需安装,解压后即可使用.
需求
1 用批处理打开chrome --app=http://localhost:8080
2 必须在上古神器windows xp上运行
存在的问题:
1.windows xp支持的chrome版本为49.0.2623.112
2.需要安装chrome,对于最终使用者来说比较麻烦
当时我的建议:
1.使用cef3或者QT的WebEngine做一个简单的套壳
2.编译好程序无需安装任何软件包,复制到xp解压后即可使用
3 windows xp支持的cef3最高版本为2623
4 windows xp支持的QT最高版本为5.6.3
实际实施中的问题:
1. windows xp一般只支持32的应用程序.
2. 第一版使用了mfc和cef3制作好的浏览器不支持javascrfipt:windows.print功能,最后发现是我库存的cef3 2623的问题.
3. 改用QT 5.6.3嵌入QWebEngine,但是QWebEngine的依赖QtWebEngineProcess.exe无法在xp上运行,重新编译QtWebEngineProcess.exe后QtWebEngineProcess.exe可以windows xp上运行,但是套壳程序崩溃.
4. openssl在Windows XP下找不到bcrypt.dll,因为为个库是从windows 7以后才有的因此openssl for Windows XP需要专门编译.
5. windows xp最多只支持Visual Studio 2010,但是现在好多为最起码是Visual Studio 2013编译的,因此不能在windows xp下开发.
6. 开发环境最低必须是windows 7 + Visual Studio 2013.需要注意平台工具设置必须是Visual Studio 2013-Windows XP(v120_xp)
7. Visual Studio 2013还不支持\utf-8编译,因此需要注意gbk和utf-8编码之间的转换.
最终解决方案:
1. 做了一个艰难的选择-重新编译了cef3 2623,支持javascrfipt:windows.print了.原来有想过自己在xp上重新编译QT 5.6.3,但是想想算了,我太难了.
2. 才安装的空白windows xp虽然支持javascrfipt:windows.print了,但是无法弹出打印机选择窗口,最后发现在打了Windows XP SP3更新合集中的某个补丁就好了,更新合集中有166个补丁,具体是那个还没测试.
经验教训:
在任何时候使用CEF3代替QWebEngine,那怕就是QT Wight程序也是如此.