windows xp使用cef3定制瀏覽器,無需安裝,解壓后即可使用.
需求
1 用批處理打開chrome --app=http://localhost:8080
2 必須在上古神器windows xp上運(yùn)行
存在的問題:
1.windows xp支持的chrome版本為49.0.2623.112
2.需要安裝chrome,對(duì)于最終使用者來說比較麻煩
當(dāng)時(shí)我的建議:
1.使用cef3或者QT的WebEngine做一個(gè)簡(jiǎn)單的套殼
2.編譯好程序無需安裝任何軟件包,復(fù)制到xp解壓后即可使用
3 windows xp支持的cef3最高版本為2623
4 windows xp支持的QT最高版本為5.6.3
實(shí)際實(shí)施中的問題:
1. windows xp一般只支持32的應(yīng)用程序.
2. 第一版使用了mfc和cef3制作好的瀏覽器不支持javascrfipt:windows.print功能,最后發(fā)現(xiàn)是我?guī)齑娴腸ef3 2623的問題.
3. 改用QT 5.6.3嵌入QWebEngine,但是QWebEngine的依賴QtWebEngineProcess.exe無法在xp上運(yùn)行,重新編譯QtWebEngineProcess.exe后QtWebEngineProcess.exe可以windows xp上運(yùn)行,但是套殼程序崩潰.
4. openssl在Windows XP下找不到bcrypt.dll,因?yàn)闉閭€(gè)庫(kù)是從windows 7以后才有的因此openssl for Windows XP需要專門編譯.
5. windows xp最多只支持Visual Studio 2010,但是現(xiàn)在好多為最起碼是Visual Studio 2013編譯的,因此不能在windows xp下開發(fā).
6. 開發(fā)環(huán)境最低必須是windows 7 + Visual Studio 2013.需要注意平臺(tái)工具設(shè)置必須是Visual Studio 2013-Windows XP(v120_xp)
7. Visual Studio 2013還不支持\utf-8編譯,因此需要注意gbk和utf-8編碼之間的轉(zhuǎn)換.
最終解決方案:
1. 做了一個(gè)艱難的選擇-重新編譯了cef3 2623,支持javascrfipt:windows.print了.原來有想過自己在xp上重新編譯QT 5.6.3,但是想想算了,我太難了.
2. 才安裝的空白windows xp雖然支持javascrfipt:windows.print了,但是無法彈出打印機(jī)選擇窗口,最后發(fā)現(xiàn)在打了Windows XP SP3更新合集中的某個(gè)補(bǔ)丁就好了,更新合集中有166個(gè)補(bǔ)丁,具體是那個(gè)還沒測(cè)試.
經(jīng)驗(yàn)教訓(xùn):
在任何時(shí)候使用CEF3代替QWebEngine,那怕就是QT Wight程序也是如此.