本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法及裝置。
背景技術(shù):
當(dāng)前Web技術(shù)蓬勃發(fā)展,各種技術(shù)層出不窮,極有力的推動(dòng)了web技術(shù)在各個(gè)軟件領(lǐng)域的發(fā)展,其不再僅僅局限于基于瀏覽器來展現(xiàn)各種軟件,甚至出現(xiàn)了利用Web技術(shù)開發(fā)桌面應(yīng)用的方式。
現(xiàn)有技術(shù)中,利用web技術(shù)開發(fā)桌面應(yīng)用主要通過WebBrowser來實(shí)現(xiàn)。具體地,在桌面應(yīng)用程序中添加WebBrowser,進(jìn)而在桌面應(yīng)用程序中實(shí)現(xiàn)web頁面。舉例來說,在QQ聊天軟件中添加WebBrowser,使得QQ聊天軟件能夠在操作系統(tǒng)的桌面彈出彈窗,該彈窗就是web頁面。
現(xiàn)有技術(shù)的方案中,WebBrowser嚴(yán)重依賴操作系統(tǒng)中IE版本,WebBrowser解析展現(xiàn)Web頁面效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法及裝置,能夠提高在桌面應(yīng)用程序中展現(xiàn)web頁面的效率。
第一方面,本發(fā)明實(shí)施例提供了一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法,包括:
預(yù)先設(shè)置目標(biāo)桌面應(yīng)用程序;
獲取CefSharp;
將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中;
在所述目標(biāo)桌面應(yīng)用程序中,利用所述CefSharp展現(xiàn)web頁面。
進(jìn)一步地,所述獲取CefSharp,包括:
獲取所述CefSharp的壓縮包;
所述將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中,包括:
解壓所述CefSharp的壓縮包,獲得所述CefSharp的解壓文件;
將所述解壓文件添加到所述目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序所在的文件夾中;
在所述目標(biāo)桌面應(yīng)用程序中添加對(duì)所述CefSharp的引用。
進(jìn)一步地,所述CefSharp的解壓文件中包括:CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll;
所述在所述目標(biāo)桌面應(yīng)用程序中添加對(duì)所述CefSharp的引用,包括:
在目標(biāo)桌面應(yīng)用程序中添加對(duì)CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll的引用。
進(jìn)一步地,在所述將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中之后,進(jìn)一步包括:
獲取所述CefSharp的接口文檔;
根據(jù)所述接口文檔,對(duì)所述目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化。
第二方面,本發(fā)明實(shí)施例提供了一種在桌面應(yīng)用程序中展現(xiàn)web頁面的裝置,包括:
設(shè)置單元,用于設(shè)置目標(biāo)桌面應(yīng)用程序;
獲取單元,用于獲取CefSharp;
添加單元,用于將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中;
展現(xiàn)單元,用于在所述目標(biāo)桌面應(yīng)用程序中,利用所述CefSharp展現(xiàn)web頁面。
進(jìn)一步地,所述獲取單元,用于獲取所述CefSharp的壓縮包;
所述添加單元,用于解壓所述CefSharp的壓縮包,獲得所述CefSharp的解壓文件,將所述解壓文件添加到所述目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序所在的文件夾中,在所述目標(biāo)桌面應(yīng)用程序中添加對(duì)所述CefSharp的引用。
進(jìn)一步地,所述CefSharp的解壓文件中包括:CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll;
所述添加單元,用于在目標(biāo)桌面應(yīng)用程序中添加對(duì)CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll的引用。
進(jìn)一步地,該裝置進(jìn)一步包括:
初始化單元,用于獲取所述CefSharp的接口文檔,根據(jù)所述接口文檔,對(duì)所述目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化。
第三方面,本發(fā)明實(shí)施例提供了一種可讀介質(zhì),包括執(zhí)行指令,當(dāng)存儲(chǔ)控制器的處理器執(zhí)行所述執(zhí)行指令時(shí),所述存儲(chǔ)控制器執(zhí)行第一方面中任一項(xiàng)所述的方法。
第四方面,本發(fā)明實(shí)施例提供了一種存儲(chǔ)控制器,包括:處理器、存儲(chǔ)器和總線;
所述存儲(chǔ)器用于存儲(chǔ)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過所述總線連接,當(dāng)所述存儲(chǔ)控制器運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述執(zhí)行指令,以使所述存儲(chǔ)控制器執(zhí)行第一方面中任一項(xiàng)所述的方法。
在本發(fā)明實(shí)施例中,將CefSharp添加到目標(biāo)桌面應(yīng)用程序中,通過CefSharp實(shí)現(xiàn)在目標(biāo)桌面應(yīng)用程序中展現(xiàn)web頁面,CefSharp封裝了谷歌瀏覽器,不依賴操作系統(tǒng)中瀏覽器的版本,在解析DOM(Document Object Model,文檔對(duì)象模型)結(jié)構(gòu)、JavaScript腳本時(shí)效率大大提升,能夠較快地實(shí)現(xiàn)web頁面的各種效果,提高了在桌面應(yīng)用程序中展現(xiàn)web頁面的效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一實(shí)施例提供的一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法的流程圖;
圖2是本發(fā)明一實(shí)施例提供的另一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法的流程圖;
圖3是本發(fā)明一實(shí)施例提供的一種在桌面應(yīng)用程序中展現(xiàn)web頁面的裝置的示意圖;
圖4是本發(fā)明一實(shí)施例提供的另一種在桌面應(yīng)用程序中展現(xiàn)web頁面的裝置的示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法,該方法可以包括以下步驟:
步驟101:預(yù)先設(shè)置目標(biāo)桌面應(yīng)用程序;
步驟102:獲取CefSharp;
步驟103:將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中;
步驟104:在所述目標(biāo)桌面應(yīng)用程序中,利用所述CefSharp展現(xiàn)web頁面。
在本發(fā)明實(shí)施例中,將CefSharp添加到目標(biāo)桌面應(yīng)用程序中,通過CefSharp實(shí)現(xiàn)在目標(biāo)桌面應(yīng)用程序中展現(xiàn)web頁面,CefSharp封裝了谷歌瀏覽器,不依賴操作系統(tǒng)中瀏覽器的版本,在解析DOM(Document Object Model,文檔對(duì)象模型)結(jié)構(gòu)、JavaScript腳本時(shí)效率大大提升,能夠較快地實(shí)現(xiàn)web頁面的各種效果,提高了在桌面應(yīng)用程序中展現(xiàn)web頁面的效率。
在本發(fā)明一實(shí)施例中,所述獲取CefSharp,包括:
獲取所述CefSharp的壓縮包;
所述將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中,包括:
解壓所述CefSharp的壓縮包,獲得所述CefSharp的解壓文件;
將所述解壓文件添加到所述目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序所在的文件夾中;
在所述目標(biāo)桌面應(yīng)用程序中添加對(duì)所述CefSharp的引用。
在本發(fā)明實(shí)施例中,通過將CefSharp的壓縮包中的解壓文件添加到目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序所在的文件夾中來實(shí)現(xiàn)在目標(biāo)桌面應(yīng)用程序中加載CefSharp。舉例來說,如果目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序在Debug目錄下,則將解壓文件添加到該Debug目錄下。如果目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序在Release目錄下,則將解壓文件添加到該Release目錄下。
另外,為了使得目標(biāo)桌面應(yīng)用程序運(yùn)行過程中CefSharp能正常工作,需要在目標(biāo)桌面應(yīng)用程序中添加對(duì)CefSharp的引用。
在本發(fā)明一實(shí)施例中,所述CefSharp的解壓文件中包括:CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll;
所述在所述目標(biāo)桌面應(yīng)用程序中添加對(duì)所述CefSharp的引用,包括:
在目標(biāo)桌面應(yīng)用程序中添加對(duì)CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll的引用。
在本發(fā)明一實(shí)施例中,在所述將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中之后,進(jìn)一步包括:
獲取所述CefSharp的接口文檔;
根據(jù)所述接口文檔,對(duì)所述目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化。
在本發(fā)明實(shí)施例中,通過對(duì)目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化可以確定目標(biāo)桌面應(yīng)用程序中的web頁面支持的默認(rèn)語言和支持的默認(rèn)瀏覽器等。
如圖2所示,本發(fā)明實(shí)施例提供了一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法,該方法可以包括以下步驟:
步驟201:預(yù)先設(shè)置目標(biāo)桌面應(yīng)用程序。
舉例來說,目標(biāo)桌面應(yīng)用程序可以是WinFrom程序。
步驟202:獲取CefSharp的壓縮包。
步驟203:解壓CefSharp的壓縮包,獲得CefSharp的解壓文件,其中,CefSharp的解壓文件中包括:CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll。
步驟204:將解壓文件添加到目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序所在的文件夾中。
步驟205:在目標(biāo)桌面應(yīng)用程序中添加對(duì)CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll的引用。
具體地,該步驟可以通過以下代碼實(shí)現(xiàn):
Using CefSharp
Using CefSharp.WinForms
步驟206:獲取CefSharp的接口文檔。
具體地,通過接口文檔可以確定出對(duì)目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化的方法。
步驟207:根據(jù)接口文檔,對(duì)目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化。
具體地,該步驟可以通過以下代碼實(shí)現(xiàn):
public void InitBrowser()
{
Cef.Initialize(new CefSettings());
brower=new ChromiumWebBrowser(“www.google.com”);
this.Controls.Add(browser);
Browser.Dock=DockStyle.Fill;
}
步驟208:在目標(biāo)桌面應(yīng)用程序中,利用CefSharp展現(xiàn)web頁面。
另外,在本發(fā)明一實(shí)施例中,該方法中的將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中包括:在目標(biāo)桌面應(yīng)用程序中,對(duì)CefSharp進(jìn)行變量的聲明。
具體地,可以通過以下代碼實(shí)現(xiàn):
public ChromiumWebBrowser browser;
本發(fā)明實(shí)施例提供的方法可以通過以下代碼實(shí)現(xiàn):
本發(fā)明實(shí)施例提供的方法可以通過開發(fā)工具VS2015實(shí)現(xiàn),并可以更改編譯屬性指定的目標(biāo)平臺(tái)為X86或X64。
在本發(fā)明實(shí)施例中,CefSharp可以是通過C#封裝的。
在本發(fā)明實(shí)施例中,針對(duì)Web頁面為開發(fā)人員集成了功能調(diào)試工具。
在本發(fā)明實(shí)施例中,基于CefSharp能夠支持在桌面應(yīng)用程序中承載、解析web頁面,支持HTML5(HyperText Markup Language,超級(jí)文本標(biāo)記語言)、CSS3(Cascading StyleSheet,層疊樣式表)等技術(shù),支持C#、JS(JavaScript)交互,通過CefSharp搭建了web頁面調(diào)用操作系統(tǒng)API(Application Programming Interface,應(yīng)用程序編程接口)的橋梁。
在本發(fā)明實(shí)施例中,由于CefSharp完整包含了一個(gè)瀏覽器內(nèi)核,所以無需客戶端再安裝任何瀏覽器,同時(shí)該瀏覽器內(nèi)核天然就有跨平臺(tái)的特性,因此可以輕松的部署在各種版本的操作系統(tǒng)上。
在本發(fā)明實(shí)施例中,不需要在客戶機(jī)操作系統(tǒng)安裝額外瀏覽器軟件,對(duì)于客戶機(jī)做到了完全透明的方式,不再考慮瀏覽器版本不兼容的問題,也提高了桌面應(yīng)用程序的穩(wěn)定性。
在本發(fā)明實(shí)施例中,CefSharp在實(shí)現(xiàn)上采用C#進(jìn)行封裝,并且提供了簡(jiǎn)單易用的接口,可以把C#中的方法注冊(cè)到Web中供頁面腳本調(diào)用,利用CefSharp提供的交互接口,可以輕松實(shí)現(xiàn)JavaScript腳本執(zhí)行C#方法。
如圖3、圖4所示,本發(fā)明實(shí)施例提供了一種在桌面應(yīng)用程序中展現(xiàn)web頁面的裝置。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實(shí)施例提供的一種在桌面應(yīng)用程序中展現(xiàn)web頁面的裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等。以軟件實(shí)現(xiàn)為例,如圖4所示,作為一個(gè)邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。本實(shí)施例提供的一種在桌面應(yīng)用程序中展現(xiàn)web頁面的裝置,包括:
設(shè)置單元401,用于設(shè)置目標(biāo)桌面應(yīng)用程序;
獲取單元402,用于獲取CefSharp;
添加單元403,用于將所述CefSharp添加到所述目標(biāo)桌面應(yīng)用程序中;
展現(xiàn)單元404,用于在所述目標(biāo)桌面應(yīng)用程序中,利用所述CefSharp展現(xiàn)web頁面。
在本發(fā)明一實(shí)施例中,所述獲取單元,用于獲取所述CefSharp的壓縮包;
所述添加單元,用于解壓所述CefSharp的壓縮包,獲得所述CefSharp的解壓文件,將所述解壓文件添加到所述目標(biāo)桌面應(yīng)用程序的可執(zhí)行程序所在的文件夾中,在所述目標(biāo)桌面應(yīng)用程序中添加對(duì)所述CefSharp的引用。
在本發(fā)明一實(shí)施例中,所述CefSharp的解壓文件中包括:CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll;
所述添加單元,用于在目標(biāo)桌面應(yīng)用程序中添加對(duì)CefSharp.dll、CefSharp.Core.dll和CefSharp.WinForms.dll的引用。
在本發(fā)明一實(shí)施例中,該裝置進(jìn)一步包括:
初始化單元,用于獲取所述CefSharp的接口文檔,根據(jù)所述接口文檔,對(duì)所述目標(biāo)桌面應(yīng)用程序的服務(wù)器端進(jìn)行初始化。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
本發(fā)明實(shí)施例提供了一種可讀介質(zhì),包括執(zhí)行指令,當(dāng)存儲(chǔ)控制器的處理器執(zhí)行所述執(zhí)行指令時(shí),所述存儲(chǔ)控制器執(zhí)行本發(fā)明實(shí)施例中任意一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法。
本發(fā)明實(shí)施例提供了一種存儲(chǔ)控制器,包括:處理器、存儲(chǔ)器和總線;
所述存儲(chǔ)器用于存儲(chǔ)執(zhí)行指令,所述處理器與所述存儲(chǔ)器通過所述總線連接,當(dāng)所述存儲(chǔ)控制器運(yùn)行時(shí),所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的所述執(zhí)行指令,以使所述存儲(chǔ)控制器執(zhí)行本發(fā)明實(shí)施例中任意一種在桌面應(yīng)用程序中展現(xiàn)web頁面的方法。
本發(fā)明各個(gè)實(shí)施例至少具有如下有益效果:
1、在本發(fā)明實(shí)施例中,將CefSharp添加到目標(biāo)桌面應(yīng)用程序中,通過CefSharp實(shí)現(xiàn)在目標(biāo)桌面應(yīng)用程序中展現(xiàn)web頁面,CefSharp封裝了谷歌瀏覽器,不依賴操作系統(tǒng)中瀏覽器的版本,在解析DOM(Document Object Model,文檔對(duì)象模型)結(jié)構(gòu)、JavaScript腳本時(shí)效率大大提升,能夠較快地實(shí)現(xiàn)web頁面的各種效果,提高了在桌面應(yīng)用程序中展現(xiàn)web頁面的效率。
2、在本發(fā)明實(shí)施例中,基于CefSharp能夠支持在桌面應(yīng)用程序中承載、解析web頁面,支持HTML5、CSS3等技術(shù),支持C#、JS(JavaScript)交互,通過CefSharp搭建了web頁面調(diào)用操作系統(tǒng)API的橋梁。
3、在本發(fā)明實(shí)施例中,由于CefSharp完整包含了一個(gè)瀏覽器內(nèi)核,所以無需客戶端再安裝任何瀏覽器,同時(shí)該瀏覽器內(nèi)核天然就有跨平臺(tái)的特性,因此可以部署在各種版本的操作系統(tǒng)上,對(duì)于客戶機(jī)做到了完全透明的方式,不再考慮瀏覽器版本不兼容的問題,也提高了桌面應(yīng)用程序的穩(wěn)定性。
4、在本發(fā)明實(shí)施例中,CefSharp在實(shí)現(xiàn)上采用C#進(jìn)行封裝,并且提供了簡(jiǎn)單易用的接口,可以把C#中的方法注冊(cè)到Web中供頁面腳本調(diào)用,利用CefSharp提供的交互接口,可以輕松實(shí)現(xiàn)JavaScript腳本執(zhí)行C#方法。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。