cwindows xp使用cef3定制浏览器,无需安装,解压后即可使用.

配套视频

需求

  • 1 用批处理打开chrome --app=http://localhost:8080

  • 2 必须在上古神器windows xp上运行

存在的问题:

  • 1.windows xp支持的chrome版本为49.0.2623.112

  • 2.需要安装chrome,对于最终使用者来说比较麻烦

  • 3.一般此类使用人员是不会记忆url的,如果忘记了url还要找售后

  • 4 windows xp支持的cef3最高版本为2623

  • 5 windows xp支持的QT最高版本为5.6.3

当时的建议:

  • 1.使用cef3或者QT的WebEngine做一个简单的套壳

  • 2.编译好程序无需安装任何软件包,复制到xp解压后即可使用

实际实施中的问题:

    1. windows xp一般只支持32的应用程序.
    1. 第一版使用了mfc和cef3制作好的浏览器不支持javascrfipt:windows.print功能,最后发现是我库存的cef3 2623的问题.
    1. 改用QT 5.6.3嵌入QWebEngine,但是QWebEngine的依赖QtWebEngineProcess.exe无法在xp上运行,重新编译QtWebEngineProcess.exe后QtWebEngineProcess.exe可以windows xp上运行,但是套壳程序崩溃.
    1. openssl在Windows XP下找不到bcrypt.dll,因为为个库是从windows 7以后才有的因此openssl for Windows XP需要专门编译.
    1. windows xp最多只支持Visual Studio 2010,但是现在好多库或源码最起码必须是Visual Studio 2013编译,因此不能直接在windows xp下开发.
    1. 开发环境最低必须是windows 7 + Visual Studio 2013.需要注意平台工具设置必须是Visual Studio 2013-Windows XP(v120_xp)
    1. Visual Studio 2013还不支持\utf-8编译,因此需要注意gbk和utf-8编码之间的转换,否则出现乱码.

最终解决方案:

    1. 做了一个艰难的选择-重新编译了cef3 2623,支持javascrfipt:windows.print了.原来有想过自己在xp上重新编译QT 5.6.3,但是想想算了.
    1. 才安装的空白windows xp虽然支持javascrfipt:windows.print了,但是无法弹出打印机选择窗口,最后发现在打了Windows XP SP3更新合集中的某个补丁就好了,更新合集中有166个补丁,具体是那个还没测试.

经验教训:

在任何时候使用CEF3代替QWebEngine(和CEF3相比差距还是比较大的),那怕就是QT Wight程序也是如此.

最终达到的效果:

  • 1.windows xp使用cef3定制浏览器,无需任何安装,解压后即可使用.

  • 2.定制javascrfipt:window方法.实现js和C/C++交互,实现了目前比较流行的CB/S架构.

    1. url和app名称加密后存在配置文件中,调用exe后自动加载url并在左上角显示app名称

你可能感兴趣的:(C,cef3,xp)