有關(guān)這個(gè)系列
首先明確一下動(dòng)機(jī):為什么要用Qt自己實(shí)現(xiàn)一個(gè)瀏覽器扛施?
簡(jiǎn)而言之,就是希望實(shí)現(xiàn)一個(gè)介于B/S和C/S之間的混合架構(gòu)搓劫,以適應(yīng)一些前端展示信息需要頻繁更新的生產(chǎn)系統(tǒng)畅买。這種混合架構(gòu)的優(yōu)勢(shì)在于:
- 相較于C/S架構(gòu),對(duì)于需要頻繁更新的展示部分倚舀,只需要在服務(wù)端更新相應(yīng)的前端文件即可叹哭,不需要更新所有的終端軟件——這同時(shí)也是B/S架構(gòu)的優(yōu)勢(shì);
- 而傳統(tǒng)的B/S架構(gòu)使用市面上現(xiàn)有的瀏覽器痕貌,無(wú)法滿足很多生產(chǎn)系統(tǒng)對(duì)穩(wěn)定性的要求风罩;此外,市面上現(xiàn)有的瀏覽器難以對(duì)所在終端的底層系統(tǒng)進(jìn)行控制舵稠;
- 利用Qt的跨平臺(tái)特性超升,可以比較容易地實(shí)現(xiàn)對(duì)不同平臺(tái)的支持。
這個(gè)系列總結(jié)了我近兩年來(lái)對(duì)Qt嵌入瀏覽器實(shí)現(xiàn)方法的一些研究哺徊。因?yàn)樽畛踔诌@方面實(shí)現(xiàn)時(shí)室琢,Qt自帶的QWebEngine[1]里尚存在一個(gè)比較嚴(yán)重的bug,導(dǎo)致我最終放棄了QWebEngine而使用了同樣跨平臺(tái)的CEF(Chrome Embedded Framework)[2]÷渥罚現(xiàn)在最新版的Qt已經(jīng)沒(méi)有這個(gè)問(wèn)題了盈滴,所以這個(gè)系列我會(huì)介紹兩套實(shí)現(xiàn)方案,即:
- 使用Qt自家的QWebEngine
- 使用Qt+CEF
注:此系列成文時(shí)轿钠,使用的Qt版本為5.10
內(nèi)容索引(不定期更新)
- QWebEngine
1.1 QWebEngineView實(shí)現(xiàn)瀏覽器基本功能
1.2 QWebChannel實(shí)現(xiàn)與頁(yè)面的通信
1.3 QWebEngine與Https - Qt+CEF
2.1 Qt嵌入CEF(上)——實(shí)現(xiàn)QCefView控件
2.2 Qt嵌入CEF(下)——CEF入口與QCefView控件的使用
2.3 QCefView實(shí)現(xiàn)JS通信接口
2.4 QCefView實(shí)現(xiàn)Https雙向認(rèn)證
參考鏈接
[1] Qt5.10 QWebEngine幫助文檔
[2] Chromium Embedded Framework官網(wǎng)