專利名稱:一種基于Webkit 內(nèi)核提供網(wǎng)頁瀏覽的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及網(wǎng)頁技術(shù),特別是涉及一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法及
>J-U裝直。
背景技術(shù):
網(wǎng)頁瀏覽器在全球廣泛使用,是一種用于訪問互聯(lián)網(wǎng)獲取資訊的應(yīng)用軟件。隨著技術(shù)的進(jìn)步和發(fā)展,越來越多其他類型的軟件,如即時(shí)通訊軟件、下載軟件、甚至輸入法等,都開始借助和使用網(wǎng)頁瀏覽器的頁面訪問能力,實(shí)現(xiàn)其軟件的某些功能,提供更好的用戶 體驗(yàn)。目前的實(shí)現(xiàn)方式,大多使用微軟提供的Webbrowser對(duì)象,通過在進(jìn)程內(nèi)實(shí)現(xiàn)一個(gè)Webbrowser COM對(duì)象來訪問頁面,實(shí)現(xiàn)相關(guān)功能。這一技術(shù)實(shí)現(xiàn)方式存在以下弊端,例如Webbrowser是一個(gè)安全性較弱的瀏覽器控件,容易引發(fā)安全問題。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┝艘环N基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法及裝置,以解決瀏覽器中使用Webbrowser內(nèi)核控件而帶來的安全性弱的問題。為了解決上述問題,本申請(qǐng)公開了一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法,包括設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口 ;在第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核;在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;并通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。優(yōu)選地,所述調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象,包括獲得所述頁面對(duì)象導(dǎo)出接口提供的工廠方法;調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象;調(diào)用所述工廠對(duì)象創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象。優(yōu)選地,所述通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載,包括通過所述頁面對(duì)象提供的頁面創(chuàng)建方法,調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核創(chuàng)建頁面窗口;在該頁面窗口中進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載。優(yōu)選地,在第二獨(dú)立進(jìn)程中進(jìn)行所述頁面內(nèi)容加載,
所述加載包括根據(jù)接收到的http請(qǐng)求獲取頁面內(nèi)容;對(duì)獲取到的頁面內(nèi)容進(jìn)行解析;對(duì)解析結(jié)果執(zhí)行js操作;根據(jù)js操作結(jié)果建立dom樹;對(duì)dom樹進(jìn)行渲染和展現(xiàn)。優(yōu)選地,所述頁面瀏覽操作包括
頁面跳轉(zhuǎn),和/或,頁面窗口移動(dòng),和/或,頁面停止加載,和/或,頁面刷新,和/或,頁面的前進(jìn)、后退,和/或,頁面銷毀。優(yōu)選地,所述通過所述頁面對(duì)象調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作,包括通過所述頁面對(duì)象提供的Navigate方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作;和/或,通過所述頁面對(duì)象提供的Imposition方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核告知所述頁面窗口跟隨外部窗口的移動(dòng)而移動(dòng);和/或,通過所述頁面對(duì)象提供的Stop方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核停止在該頁面窗口中加載頁面內(nèi)容;和/或,通過所述頁面對(duì)象提供的Reload方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容;和/或,通過所述頁面對(duì)象提供的GoBack方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作;和/或,通過所述頁面對(duì)象提供的GoForward方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作;和/或,通過所述頁面對(duì)象提供的Destroy方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對(duì)象。優(yōu)選地,所述通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,包括構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄;將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象提供的頁面創(chuàng)建方法;通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核進(jìn)行通信。優(yōu)選地,所述設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口,包括通過動(dòng)態(tài)鏈接庫提供Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口。優(yōu)選地,調(diào)用所述頁面對(duì)象導(dǎo)出接口之前,還包括訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑;從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。優(yōu)選地,還包括Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng)態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。優(yōu)選地,多個(gè)第二獨(dú)立進(jìn)程從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。
本申請(qǐng)還提供了一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的裝置,包括接口導(dǎo)出模塊,用于設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口 ;內(nèi)核啟動(dòng)模塊,用于在 第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核;第一調(diào)用模塊,用于在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;并第二調(diào)用模塊,用于通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。優(yōu)選地,所述第一調(diào)用模塊包括工廠方法獲取子模塊,用于獲得所述頁面對(duì)象導(dǎo)出接口提供的工廠方法;工廠對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象;頁面對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠對(duì)象創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象。優(yōu)選地,所述第二調(diào)用模塊通過所述頁面對(duì)象提供的頁面創(chuàng)建方法,調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核創(chuàng)建頁面窗口,并在該頁面窗口中進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載。優(yōu)選地,在第二獨(dú)立進(jìn)程中進(jìn)行所述頁面內(nèi)容加載,所述加載包括根據(jù)接收到的http請(qǐng)求獲取頁面內(nèi)容;對(duì)獲取到的頁面內(nèi)容進(jìn)行解析;對(duì)解析結(jié)果執(zhí)行js操作;根據(jù)js操作結(jié)果建立dom樹;對(duì)dom樹進(jìn)行渲染和展現(xiàn)。優(yōu)選地,所述頁面瀏覽操作包括頁面跳轉(zhuǎn),和/或,頁面窗口移動(dòng),和/或,頁面停止加載,和/或,頁面刷新,和/或,頁面的前進(jìn)、后退,和/或,頁面銷毀。優(yōu)選地,所述第二調(diào)用模塊包括導(dǎo)航調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Navigate方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作;和/或,移動(dòng)調(diào)用子模塊,用于通過所述頁面對(duì)象提供的R印osition方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核告知所述頁面窗口跟隨外部窗口的移動(dòng)而移動(dòng);和/或,停止調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Stop方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核停止在該頁面窗口中加載頁面內(nèi)容; 和/或,刷新調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Reload方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容;和/或,頁面后退調(diào)用子模塊,用于通過所述頁面對(duì)象提供的GoBack方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作;和/或,頁面前進(jìn)調(diào)用子模塊,用于通過所述頁面對(duì)象提供的GoForward方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作;和/或,銷毀調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Destroy方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對(duì)象。
優(yōu)選地,所述第二調(diào)用模塊包括構(gòu)造子模塊,用于構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄;參數(shù)賦值子模塊,用于將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象提供的頁面創(chuàng)建方法;頁面創(chuàng)建子模塊,用于通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核進(jìn)行通信。優(yōu)選地,所述接口導(dǎo)出模塊通過動(dòng)態(tài)鏈接庫提供Webk it內(nèi)核的頁面對(duì)象導(dǎo)出接□。優(yōu)選地,還包括路徑查找模塊,用于訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑;加載模塊,用于從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。優(yōu)選地,還包括更新模塊,用于Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng)態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。優(yōu)選地,多個(gè)第二獨(dú)立進(jìn)程通過從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn)本申請(qǐng)?zhí)岢隽艘环N跨進(jìn)程使用webkit核心實(shí)現(xiàn)網(wǎng)頁瀏覽的方法,能很好地解決瀏覽器中的Webtoowser內(nèi)核版本落后、安全性薄弱、不支持非微軟平臺(tái)的問題,和直接使用webkit核心導(dǎo)致的技術(shù)門檻高、升級(jí)困難、安裝包過大等問題。首先,本申請(qǐng)為WebKit內(nèi)核導(dǎo)出WebAppTabWrapper對(duì)象的接口,第三方軟件獲得WebAppTabWrapper對(duì)象后,通過調(diào)用該對(duì)象的Create方法,通知webkit瀏覽器創(chuàng)建一個(gè)新的頁面。網(wǎng)頁瀏覽中進(jìn)行的http請(qǐng)求,解析返回?cái)?shù)據(jù),執(zhí)行js,建立dom樹,完成最后渲染等具體工作都對(duì)第三方軟件不可見,簡化了第三方軟件的技術(shù)使用難度。第三方軟件和真正的頁面訪問、解析、渲染模塊工作在不同進(jìn)程,進(jìn)程間隔離很好的保護(hù)了第三方軟件不受頁面不安全因素的影響。因此,本申請(qǐng)能很好地解決瀏覽器中使用Webtoowser內(nèi)核而帶來的安全性薄弱、容易導(dǎo)致用戶安全的問題。其次,Webkit核心的升級(jí)和bug修復(fù)等,由dll服務(wù)的升級(jí)檢查功能完成。在進(jìn)行新版本升級(jí)安裝時(shí)不影響舊版本的運(yùn)行使用,對(duì)第三方軟件完全不可見。第三方軟件通過訪問注冊表的某個(gè)項(xiàng)目獲取新的服務(wù)版本dll路徑,加載后使用。并且,新舊版本可以同時(shí)使用。因此,本申請(qǐng)能很好地解決瀏覽器中的Webbrowser內(nèi)核版本落后的問題。而且,本申請(qǐng)可以簡化第三方軟件在windows平臺(tái)和非windows平臺(tái)使用網(wǎng)頁瀏覽增加軟件功能的開發(fā)難度,使任意第三方軟件可以使用本發(fā)明提供的網(wǎng)頁訪問服務(wù),輕易的訪問頁面,增強(qiáng)軟件用戶體驗(yàn)。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
圖I是本申請(qǐng)實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程圖2是本申請(qǐng)另一實(shí)施例所述基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程圖;圖3是本申請(qǐng)實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié)構(gòu)圖;圖4是本申請(qǐng)另一實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié)構(gòu)圖;圖5是本申請(qǐng)另一實(shí)施例所述基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程圖;圖6是本申請(qǐng)另一實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。目前,越來越多其他類型的第三方軟件,如即時(shí)通訊軟件、下載軟件、甚至輸入法等,都開始借助和使用網(wǎng)頁瀏覽器的頁面訪問能力,實(shí)現(xiàn)其軟件的某些功能,提供更好的用戶體驗(yàn)。微軟的IE瀏覽器提供的Webbrowser對(duì)象存在較多的弊端,例如Webbrowser對(duì)象的版本過老限制了很多新的頁面技術(shù)的使用和展現(xiàn);Webbrowser是一個(gè)安全性較弱的瀏覽器核心,容易引發(fā)安全問題;Webtoowser容易被各種流氓軟件安裝插件,注入代碼,引發(fā)很多使用問題,比如關(guān)閉了 fash和java運(yùn)行,導(dǎo)致相關(guān)功能失效。在第三方軟件實(shí)現(xiàn)網(wǎng)頁瀏覽的過程中,為了解決IE的Webbrowser內(nèi)核存在的上述各種問題,本申請(qǐng)?zhí)峁┝艘环N使用webkit實(shí)現(xiàn)網(wǎng)頁瀏覽的方法。其中,所述webkit是Chrome瀏覽器的核心,webkit是一個(gè)開放源代碼的瀏覽器引擎(web browser engine)。但是,如果在第三方軟件中直接使用webkit核心實(shí)現(xiàn)網(wǎng)頁瀏覽,存在以下缺陷webkit核心接口復(fù)雜,技術(shù)門檻高,增加了軟件利用其實(shí)現(xiàn)頁面瀏覽功能的技術(shù)門檻;webkit核心代碼較多,dll (動(dòng)態(tài)鏈接庫)較大,增加了使用其軟件的體積;瀏覽器版本更新迅速,直接包含webkit核心無法做到快速使用最新技術(shù),規(guī)避已知安全問題?;诖?,本申請(qǐng)沒有直接使用webkit核心,提供了一種跨進(jìn)程的頁面瀏覽服務(wù)dll,任何第三方軟件可以在安裝了此種dll服務(wù)的系統(tǒng)上獲得頁面瀏覽能力,從而簡化了使用webkit渲染頁面的技術(shù)門檻和復(fù)雜度。Webkit作為一個(gè)完整的瀏覽器內(nèi)核,只負(fù)責(zé)完成html解析和渲染工作,其它工作如網(wǎng)絡(luò)連接請(qǐng)求、js解析、外圍包裝等,都需要第三方軟件實(shí)現(xiàn)后,webkit才能正常工作。而實(shí)現(xiàn)一個(gè)良好的http協(xié)議棧和js解析器難度巨大,工作復(fù)雜。本申請(qǐng)中的這種頁面瀏覽的dll服務(wù)可以理解為一個(gè)代理,代理封裝了網(wǎng)絡(luò)連接請(qǐng)求、js解析、外圍包裝等工作,從而將這些用戶不關(guān)心又復(fù)雜的部分對(duì)用戶進(jìn)行了屏蔽;并且,代理還封裝了簡單的接口來調(diào)用幾個(gè)基本的webkit瀏覽器操作。第三方軟件可以通過這種dll服務(wù)實(shí)現(xiàn)與webkit核心的通信,用戶只需給出url和一個(gè)用于承載頁面的窗口句柄,就可以得到一個(gè)渲染完成的網(wǎng)頁。由于網(wǎng)頁瀏覽過程中的很多工作都由dll服務(wù)完成,因此簡化了第三方軟件的開發(fā)。下面通過實(shí)施例對(duì)本申請(qǐng)所述方法的實(shí)現(xiàn)流程進(jìn)行詳細(xì)說明。參照?qǐng)D1,是本申請(qǐng)實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程圖。步驟101,通過自定義接口加載動(dòng)態(tài)鏈接庫;所述自定義接口包括外部接口和內(nèi)部接口,通過外部接口可以加載動(dòng)態(tài)鏈接庫。動(dòng)態(tài)鏈接庫(dll服務(wù))提供給第三方軟件使用的是外部接口,第三方軟件實(shí)現(xiàn)這些簡單的外部接口后,就可以與動(dòng)態(tài)鏈接庫通信。動(dòng)態(tài)鏈接庫還提供了 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口,這些內(nèi)部接口為webkit 內(nèi)核導(dǎo)出的類似IE的Webbrowser對(duì)象的接口,但具體的接口數(shù)目和使用復(fù)雜度要大大低于IE的Webbrowser。而且,傳統(tǒng)方法包裝webkit需要實(shí)現(xiàn)數(shù)百個(gè)接口,但本申請(qǐng)實(shí)施例中第三方軟件所需實(shí)現(xiàn)的接口數(shù)目非常少,但幾個(gè)基本的瀏覽器操作都已經(jīng)包括在其中。第三方軟件實(shí)現(xiàn)所述數(shù)目較少的自定義接口后,通過自定義接口加載動(dòng)態(tài)鏈接庫dlI,具體的加載方法如下通過自定義接口訪問注冊表;查找注冊表中所述動(dòng)態(tài)鏈接庫dll的存儲(chǔ)路徑;從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫dll。步驟102,調(diào)用所述動(dòng)態(tài)鏈接庫來創(chuàng)建頁面對(duì)象;通過調(diào)用動(dòng)態(tài)鏈接庫提供的內(nèi)部接口,就可以實(shí)現(xiàn)與Webkit內(nèi)核的通信。其中,使用工廠模式來創(chuàng)建頁面對(duì)象。工廠模式就是專門負(fù)責(zé)將大量有共同接口的類實(shí)例化,而且不必事先知道每次是要實(shí)例化哪一個(gè)類的模式。它定義一個(gè)用于創(chuàng)建對(duì)象的接口,由子類決定實(shí)例化哪一個(gè)類。具體子步驟如下子步驟I,調(diào)用所述動(dòng)態(tài)鏈接庫來獲得工廠方法;子步驟2,調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象;子步驟3,調(diào)用所述工廠對(duì)象創(chuàng)建頁面對(duì)象。步驟103,通過調(diào)用所述頁面對(duì)象中的頁面創(chuàng)建方法,通知webkit瀏覽器創(chuàng)建頁面窗口,并完成該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。具體子步驟如下子步驟1,構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄;子步驟2,將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象中的頁面創(chuàng)建方法;子步驟3,通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,通知webkit瀏覽器創(chuàng)建頁面窗口,并完成該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。頁面對(duì)象中提供了頁面創(chuàng)建方法,該方法中設(shè)有參數(shù),參數(shù)賦值為目標(biāo)訪問的網(wǎng)址和窗口句柄后,通過調(diào)用該方法即可與webkit內(nèi)核通信,參數(shù)值傳給webkit內(nèi)核,webkit內(nèi)核按照參數(shù)值訪問目標(biāo)網(wǎng)址,并創(chuàng)建頁面窗口,完成該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。
最后,瀏覽器的相關(guān)回調(diào)還可通過對(duì)應(yīng)的函數(shù)調(diào)用通知第三方軟件。下面通過一個(gè)具體的例子詳細(xì)解釋上述內(nèi)容。接口的內(nèi)容和用法如下提供一個(gè)工廠方法,供第三方軟件調(diào)用extern" C" {DLL_INTERFACE WebAppFactory^GetffebAppFactory();};第三方軟件可通過LoadLibrary函數(shù)加載dl I服務(wù)(動(dòng)態(tài)鏈接庫),并通過GetProcAddress函數(shù)獲得工廠方法GetWebAppFactory,并創(chuàng)建工廠對(duì)象WebAppFactory,進(jìn)而得到一個(gè)頁面對(duì)象WebAppTabWrapper,其接口如下
class WebAppTaWrapper {public:
virtual HKESULT STDMETHODCALLTYPE Create(WebApj)CreateParams const &) = 0; virtual HKESULT STDMETHODCALLTYPE DestroyO = 0; virtual HRESULT STDMETHODCALLTYPE Navigate(char const *) = 0;virtual HRESULT STDMETHODCALLTYPE Reposition (
WebAppRepositionParams const &) = 0; virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; virtual HRESULT STDMETHODCALLTYPE Reload( void) = 0; virtual HRESULT STDMETHODCALLTYPE GoBack( void) = 0; virtual HKESULT STDMETHODCALLTYPE GoForward( void) = 0; virtual "WebAppTabfrapper () {}
};第三方軟件獲得WebAppTabWrapper對(duì)象后,通過調(diào)用該對(duì)象提供的Create方法,通知webkit內(nèi)核的網(wǎng)頁瀏覽服務(wù)創(chuàng)建一個(gè)新的頁面,并調(diào)用Navigate方法通知服務(wù)進(jìn)行導(dǎo)航操作,Stop、Reload、GoBack、GoForward則提供基本的頁面前進(jìn)后退、停止加載和刷新功能。第三方軟件在不再需要瀏覽頁面時(shí),通過調(diào)用Destroy方法銷毀頁面對(duì)象。具體的,還可以包括以下步驟通過調(diào)用所述頁面對(duì)象中的Navigate方法,通知webkit瀏覽器在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作。例如,新創(chuàng)建的頁面窗口中,最初訪問目標(biāo)網(wǎng)址顯示的歡迎頁面的內(nèi)容,然后通過調(diào)用Navigate方法,可以從歡迎頁跳轉(zhuǎn)到真正的主頁,但是不再創(chuàng)建新的頁面窗口,只在同一個(gè)頁面窗口中進(jìn)行頁面內(nèi)容的跳轉(zhuǎn)。
通過調(diào)用所述頁面對(duì)象中的Stop方法,通知webkit瀏覽器停止該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。通過調(diào)用所述頁面對(duì)象中的Reload方法,通知webkit瀏覽器刷新該頁面窗口中的頁面內(nèi)容。通過調(diào)用所述頁面對(duì)象中的GoBack方法,通知webkit瀏覽器在該頁面窗口中進(jìn)行頁面后退操作;通過調(diào)用所述頁面對(duì)象中的GoForward方法,通知webkit瀏覽器在該頁面窗口中進(jìn)行頁面前進(jìn)操作。通過調(diào)用所述頁面對(duì)象中的Destroy方法,通知webkit瀏覽器銷毀該頁面對(duì)象。 當(dāng)?shù)谌杰浖?shí)現(xiàn)如上接口后,webkit瀏覽器的相關(guān)回調(diào)將通過對(duì)應(yīng)的函數(shù)調(diào)用通知第三方軟件。具體的工作流程如圖2所示參照?qǐng)D2,是本申請(qǐng)另一實(shí)施例所述基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程圖。步驟201,第三方軟件實(shí)現(xiàn)WebAppUIDelegate接口 ;所述WebAppUIDelegate接口是dl I服務(wù)提供給第三方軟件使用的外部接口,作為一個(gè)較佳實(shí)施例,該接口具體地提供了以下接口函數(shù)
class WebAppUIDelegate { public:
virtual void OnHandleAccelerator() = 0; virtual void OnOpenURL() = 0; virtual void OnTitleChangeO = 0; virtual void OnStatusTextChange() = 0; virtual void OnNavigateComplete2() = 0; virtual void OnNavigateError() = 0; virtual void OnQuit() = 0; virtual void OnUpdateTargetUrl() = 0; virtual void OnGetCurrentUrlRsp() = 0; virtual void OnCrashReport() = 0; virtual, void OnReportMainWindowO = 0; virtual, void OnWebAppJsCa11 () = 0;
};
各接口函數(shù)的說明如下OnHandleAccelerator函數(shù)提供快捷鍵回調(diào)方法,通知第三方軟件用戶按下了一組快捷鍵;OnOpenURL函數(shù)提供打開頁面回調(diào)方法,通知第三方軟件用戶嘗試開啟一個(gè)新頁面,第三方軟件可以允許或禁止;OnTitleChange函數(shù)提供title (標(biāo)題)改變回調(diào)方法,通知第三方軟件當(dāng)前的窗口 title文字發(fā)生了改變;OnStatusTextChange函數(shù)提供狀態(tài)欄改變回調(diào)方法,通知第三方軟件當(dāng)前的窗口狀態(tài)欄文字發(fā)生了改變;0nNavigateComplete2函數(shù)提供導(dǎo)航完畢回調(diào)方法,通知第三方軟件導(dǎo)航完成;
OnNavigateError函數(shù)提供導(dǎo)航錯(cuò)誤回調(diào)方法,通知第三方軟件導(dǎo)航錯(cuò)誤;OnQuit函數(shù)提供退出回調(diào)方法,通知第三方軟件用戶關(guān)閉了當(dāng)前頁面或者渲染服務(wù)因某種原因退出了;OnUpdateTargetUrl函數(shù)提供目標(biāo)url更新回調(diào)方法,通知第三方軟件當(dāng)前的目標(biāo)url發(fā)生了改變;OnGetCurrentUrlRsp函數(shù)提供獲取當(dāng)前url回調(diào)方法,通知第三方軟件當(dāng)前的url ;OnCrashReport函數(shù)提供崩潰回調(diào)方法,通知第三方軟件頁面訪問服務(wù)發(fā)生了崩潰;OnReportMainffindow函數(shù)提供主窗口回調(diào)方法,通知第三方軟件當(dāng)前頁面的主窗
n ;OnWebAppJsCalI函數(shù)提供js回調(diào)方法,通知第三方軟件,頁面請(qǐng)求執(zhí)行一個(gè)外部js調(diào)用。步驟202,通過約定的注冊表項(xiàng)目,找到Webapp_proxy. dll所在的路徑;其中,所述Webapp_proxy. dll是動(dòng)態(tài)鏈接庫,即dll服務(wù);步驟203,加載 Webapp_proxy. dll ;如果加載成功,即繼續(xù)步驟204 ;如果加載失敗,則轉(zhuǎn)到異常處理;步驟204,使用 GetProcAddress 函數(shù)得到 GetWebAppFactory 方法;其中,所述GetWebAppFactory方法為工廠方法;步驟205,調(diào)用GetWebAppFactory方法創(chuàng)建一個(gè)工廠對(duì)象;創(chuàng)建的工廠對(duì)象為WebAppFactory ;步驟206,調(diào)用工廠對(duì)象的CreateWebAppTab方法創(chuàng)建一個(gè)標(biāo)簽頁對(duì)象;其中,所述標(biāo)簽頁對(duì)象為WebAppTaWrapper ;步驟207,構(gòu)造一個(gè)WebAppCreateParams對(duì)象,并填充好目標(biāo)的url和用于容納頁面的窗口句柄,然后用這個(gè)對(duì)象作為參數(shù)調(diào)用標(biāo)簽頁對(duì)象的Create方法,通知webkit內(nèi)核創(chuàng)建頁面;其中,所述WebAppCreateParams對(duì)象為參數(shù)對(duì)象;webkit內(nèi)核根據(jù)目標(biāo)的url和窗口句柄創(chuàng)建一個(gè)新的頁面窗口,并完成頁面的渲染和展現(xiàn);
步驟208,如果機(jī)器的網(wǎng)絡(luò)環(huán)境正常且url正確,一個(gè)新的頁面窗口將成為WebAppCreateParams的子窗口,并完成頁面的渲染和展現(xiàn)工作,用戶可以正常地和這個(gè)頁面交互。基于圖2的流程,多個(gè)第三方軟件可以同時(shí)加載此接口 dll,完成頁面瀏覽,彼此互不影響,互不可見。Webkit核心的升級(jí)和bug修復(fù)等,由dll服務(wù)的升級(jí)檢查功能完成。在進(jìn)行新版本升級(jí)安裝時(shí)不影響舊版本的運(yùn)行使用,對(duì)第三方軟件完全不可見。第三方軟件通過訪問注冊表的某個(gè)項(xiàng)目獲取新的服務(wù)版本dll路徑,加載后使用。并且,新舊版本可以同時(shí)使用。綜上所述,本申請(qǐng)實(shí)施例為WebKit內(nèi)核導(dǎo)出WebAppTabWrapper對(duì)象的接口,第三方軟件獲得WebAppTabWrapper對(duì)象后,通過調(diào)用該對(duì)象的Create方法,通知webkit瀏覽器創(chuàng)建一個(gè)新的頁面。網(wǎng)頁瀏覽中進(jìn)行的http請(qǐng)求,解析返回?cái)?shù)據(jù),執(zhí)行js,建立dom樹,完成最后渲染等具體工作都對(duì)第三方軟件不可見,簡化了第三方軟件的技術(shù)使用難度。第三方軟件和真正的頁面訪問、解析、渲染模塊工作在不同進(jìn)程,即實(shí)現(xiàn)了跨進(jìn)程的訪問,進(jìn)程間隔離很好的保護(hù)了第三方軟件不受頁面不安全因素的影響。其中,所述“進(jìn)程間隔離”包含兩層含義;其一,dll服務(wù)與webkit內(nèi)核相互隔離,分別工作在不同進(jìn)程;其二,第三方軟件之間相互隔離,每個(gè)第三方軟件都可以獨(dú)立加載dll服務(wù)來完成頁面瀏覽,相互之間互不干擾。而且,基于webkit核心的網(wǎng)頁訪問服務(wù)不受限于微軟windows操作系統(tǒng)的版本及操作系統(tǒng)本身,在非windows平臺(tái),也能以與上文類似的方式工作,簡化了第三方軟件進(jìn)行跨平臺(tái)版本開發(fā)的難度??傊?,本申請(qǐng)?zhí)岢隽艘环N跨進(jìn)程使用webkit核心實(shí)現(xiàn)網(wǎng)頁瀏覽的方法,能很好地解決IE的Webbrowser內(nèi)核版本落后、安全性薄弱、不支持非微軟平臺(tái)的問題,和直接使用w e b k i t核心導(dǎo)致的技術(shù)門濫高、升級(jí)困難、安裝包過大等問題。并且,可以簡化第三方軟件在windows平臺(tái)和非windows平臺(tái)使用網(wǎng)頁瀏覽增加軟件功能的開發(fā)難度,使任意第三方軟件可以使用本發(fā)明提供的網(wǎng)頁訪問服務(wù),輕易的訪問頁面,增強(qiáng)軟件用戶體驗(yàn)。需要說明的是,對(duì)于前述的方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本申請(qǐng)所必需的?;谏鲜龇椒▽?shí)施例的說明,本申請(qǐng)還提供了相應(yīng)的網(wǎng)頁瀏覽裝置實(shí)施例。參照?qǐng)D3,是本申請(qǐng)實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié)構(gòu)圖。 所述網(wǎng)頁瀏覽裝置可以包括以下接口和模塊自定義接口10和加載模塊20,所述加載模塊20通過自定義接口 10加載動(dòng)態(tài)鏈接庫;第一調(diào)用模塊30,用于調(diào)用所述動(dòng)態(tài)鏈接庫來創(chuàng)建頁面對(duì)象;第二調(diào)用模塊40,用于通過調(diào)用所述頁面對(duì)象中的頁面創(chuàng)建方法,通知webkit瀏覽器創(chuàng)建頁面窗口,并完成該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。其中,所述第一調(diào)用模塊30具體可以包括以下子模塊工廠方法獲取子模塊,用于調(diào)用所述動(dòng)態(tài)鏈接庫來獲得工廠方法;工廠對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象;頁面對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠對(duì)象創(chuàng)建頁面對(duì)象。其中,所述第二調(diào)用模塊40具體可以包括以下子模塊構(gòu)造子模塊,用于構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄;參數(shù)賦值子模塊,用于將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象中的頁面創(chuàng)建方法;
·
頁面創(chuàng)建子模塊,用于通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,通知webkit瀏覽器創(chuàng)建頁面窗口,并完成該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。其中,所述加載模塊20具體可以包括以下子模塊注冊表訪問子模塊,用于通過自定義接口訪問注冊表;路徑查找子模塊,用于查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑;加載子模塊,用于從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。在另一實(shí)施例中,如圖4所示優(yōu)選地,所述裝置還可以包括導(dǎo)航調(diào)用模塊50,用于通過調(diào)用所述頁面對(duì)象中的Navigate方法,通知webkit瀏覽器在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作。優(yōu)選地,所述裝置還可以包括停止調(diào)用模塊60,用于通過調(diào)用所述頁面對(duì)象中的Stop方法,通知webkit瀏覽器停止該頁面窗口中頁面內(nèi)容的渲染和展現(xiàn)。優(yōu)選地,所述裝置還可以包括刷新調(diào)用模塊70,用于通過調(diào)用所述頁面對(duì)象中的Reload方法,通知webkit瀏覽器刷新該頁面窗口中的頁面內(nèi)容。優(yōu)選地,所述裝置還可以包括頁面后退調(diào)用模塊80,用于通過調(diào)用所述頁面對(duì)象中的GoBack方法,通知webkit瀏覽器在該頁面窗口中進(jìn)行頁面后退操作;頁面前進(jìn)調(diào)用模塊90,用于通過調(diào)用所述頁面對(duì)象中的GoForward方法,通知webkit瀏覽器在該頁面窗口中進(jìn)行頁面前進(jìn)操作。優(yōu)選地,所述裝置還可以包括銷毀調(diào)用模塊100,用于通過調(diào)用所述頁面對(duì)象中的Destroy方法,通知webkit瀏覽器銷毀該頁面對(duì)象。對(duì)于上述圖3和圖4所示的網(wǎng)頁瀏覽裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見圖I和圖2所示方法實(shí)施例的部分說明即可。基于以上內(nèi)容,本申請(qǐng)還提供了另外一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法和裝置的實(shí)施例,下面分別通過圖5和圖6進(jìn)行說明。參照?qǐng)D5所示,是本申請(qǐng)另一實(shí)施例所述基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程圖。步驟501,設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口 ;步驟502,在第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核;步驟503,在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;所述第一獨(dú)立進(jìn)程和第二獨(dú)立進(jìn)程是兩個(gè)進(jìn)程,換而言之,頁面的瀏覽和Webkit內(nèi)核的運(yùn)行相互獨(dú)立,互不影響。具體的,調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象,可包括以下子步驟子步驟1,獲得所述頁面對(duì)象導(dǎo)出接口提供的工廠方法;子步驟2,調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象;子步驟3,調(diào)用所述工廠對(duì)象創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象。步驟504,通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。所述第二獨(dú)立進(jìn)程可通過調(diào)用所述頁面對(duì)象實(shí)現(xiàn)與第一獨(dú)立進(jìn)程中Webkit內(nèi)核的通信,具體的,所述通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,可包括以下子步驟子步驟1,構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄;子步驟2,將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象提供的頁面創(chuàng)建方法;子步驟3,通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核進(jìn)行通信。第二獨(dú)立進(jìn)程調(diào)用Weblkit內(nèi)核可實(shí)現(xiàn)頁面瀏覽操作和頁面內(nèi)容加載,下面分別詳細(xì)說明具體的頁面內(nèi)容加載過程,以及都有哪些頁面瀏覽操作。I、頁面內(nèi)容加載具體的,通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載,具體可包括以下處理通過所述頁面對(duì)象提供的頁面創(chuàng)建方法,調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核創(chuàng)建頁面窗口;在該頁面窗口中進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載。進(jìn)一步的,在第二獨(dú)立進(jìn)程中進(jìn)行所述頁面內(nèi)容加載;并且,所述加載包括以下處理步驟I)根據(jù)接收到的http請(qǐng)求獲取頁面內(nèi)容;2)對(duì)獲取到的頁面內(nèi)容進(jìn)行解析;3)對(duì)解析結(jié)果執(zhí)行js操作;4)根據(jù)js操作結(jié)果建立dom樹;5)對(duì)dom樹進(jìn)行渲染和展現(xiàn)。
、
2、頁面瀏覽操作所述頁面瀏覽操作可包括
頁面跳轉(zhuǎn),和/或,頁面窗口移動(dòng),和/或,頁面停止加載,和/或,頁面刷新,和/或,頁面的前進(jìn)、后退,和/或,頁面銷毀。進(jìn)一步地對(duì)于頁面跳轉(zhuǎn)操作,可通過所述頁面對(duì)象提供的Navigate方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作;對(duì)于頁面窗口移動(dòng)操作,可通過所述頁面對(duì)象提供的Reposition方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核告知所述頁面窗口跟隨外部窗口的移動(dòng)而移動(dòng);對(duì)于頁面停止加載操作,可通過所述頁面對(duì)象提供的Stop方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核停止在該頁面窗口中加載頁面內(nèi)容;
對(duì)于頁面刷新操作,可通過所述頁面對(duì)象提供的Reload方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容;對(duì)于頁面的前進(jìn)操作,可通過所述頁面對(duì)象提供的GoBack方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作;對(duì)于頁面的后退操作,可通過所述頁面對(duì)象提供的GoForward方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作;對(duì)于頁面銷毀操作,可通過所述頁面對(duì)象提供的Destroy方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對(duì)象。基于圖5實(shí)施例的內(nèi)容,優(yōu)選地,可通過動(dòng)態(tài)鏈接庫(dll服務(wù))提供Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口,該導(dǎo)出接口是動(dòng)態(tài)鏈接庫提供的用于與Webkit內(nèi)核通信的內(nèi)部接口。此外,所述動(dòng)態(tài)鏈接庫還提供了用于與第三方軟件通信的外部接口。進(jìn)一步地,在第二獨(dú)立進(jìn)程調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建頁面對(duì)象之前,還可以包括以下處理訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑;從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。優(yōu)選地,還可包括以下處理Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng)態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。而且,多個(gè)第二獨(dú)立進(jìn)程可從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。即在進(jìn)行新版本升級(jí)安裝時(shí)不影響舊版本的運(yùn)行使用,新舊版本可以同時(shí)使用,對(duì)第三方軟件完全不可見。并且,多個(gè)第三方軟件可同時(shí)實(shí)現(xiàn)基于Webkit內(nèi)核的網(wǎng)頁瀏覽。參照?qǐng)D6所示,是本申請(qǐng)另一實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié)構(gòu)圖。所述基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的裝置,具體可包括以下模塊接口導(dǎo)出模塊61,用于設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口 ;內(nèi)核啟動(dòng)模塊62,用于在第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核;第一調(diào)用模塊63,用于在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;并第二調(diào)用模塊64,用于通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。優(yōu)選地,所述第一調(diào)用模塊63具體可包括工廠方法獲取子模塊,用于獲得所述頁面對(duì)象導(dǎo)出接口提供的工廠方法;工廠對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象;頁面對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠對(duì)象創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象。優(yōu)選地,所述第二調(diào)用模塊64可通過所述頁面對(duì)象提供的頁面創(chuàng)建方法,調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核創(chuàng)建頁面窗口,并在該頁面窗口中進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載。優(yōu)選地,在第二獨(dú)立進(jìn)程中進(jìn)行所述頁面內(nèi)容加載,所述加載包括根據(jù)接收到的http請(qǐng)求獲取頁面內(nèi)容;對(duì)獲取到的頁面內(nèi)容進(jìn)行解析;對(duì)解析結(jié)果執(zhí)行js操作;根據(jù)js操作結(jié)果建立dom樹;對(duì)dom樹進(jìn)行渲染和展現(xiàn)。優(yōu)選地,所述頁面瀏覽操作包括頁面跳轉(zhuǎn),和/或,頁面窗口移動(dòng),和/或,頁面停止加載,和/或,頁面刷新,和/或,頁面的前進(jìn)、后退,和/或,頁面銷毀。優(yōu)選地,所述第二調(diào)用模塊64具體可包括導(dǎo)航調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Navigate方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作; 和/或,移動(dòng)調(diào)用子模塊,用于通過所述頁面對(duì)象提供的R印osition方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核告知所述頁面窗口跟隨外部窗口的移動(dòng)而移動(dòng);和/或,停止調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Stop方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核停止在該頁面窗口中加載頁面內(nèi)容;和/或,刷新調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Reload方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容;和/或,頁面后退調(diào)用子模塊,用于通過所述頁面對(duì)象提供的GoBack方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作;和/或,頁面前進(jìn)調(diào)用子模塊,用于通過所述頁面對(duì)象提供的GoForward方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作;和/或,銷毀調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Destroy方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對(duì)象。優(yōu)選地,所述第二調(diào)用模塊64還可包括 構(gòu)造子模塊,用于構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄;參數(shù)賦值子模塊,用于將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象提供的頁面創(chuàng)建方法;頁面創(chuàng)建子模塊,用于通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核進(jìn)行通信。優(yōu)選地,所述接口導(dǎo)出模塊61可通過動(dòng)態(tài)鏈接庫提供Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口。優(yōu)選地,所述裝置還可包括路徑查找模塊65,用于訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑;加載模塊66,用于從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。優(yōu)選地,所述裝置還可包括更新模塊67,用于Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng)態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。
優(yōu)選地,多個(gè)第二獨(dú)立進(jìn)程通過從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。對(duì)于上述圖6所示的網(wǎng)頁瀏覽裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見圖5所示方法實(shí)施例的部分說明即可。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。本申請(qǐng)實(shí)施例可以實(shí)施在任何支持圖形處理、互聯(lián)網(wǎng)內(nèi)容擷取和渲染的裝置(或多個(gè)裝置)上。這些裝置包括但不限于個(gè)人計(jì)算機(jī)、集群服務(wù)器、移動(dòng)電話、工作站、嵌入式系統(tǒng)、游戲機(jī)、電視、機(jī)頂盒,或任何其它支持計(jì)算機(jī)圖形和內(nèi)容顯示的計(jì)算裝置。這些裝置可以包括但不限于擁有執(zhí)行和儲(chǔ)存指令的一個(gè)或多個(gè)處理器和存儲(chǔ)器的裝置。這些裝置可以包括軟件、固件和硬件。軟件可以包括一個(gè)或多個(gè)應(yīng)用程序和操作系統(tǒng)。硬件可以包括但不限于處理器、存儲(chǔ)器及顯示器。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。 以上對(duì)本申請(qǐng)所提供的一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法及裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例
的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
權(quán)利要求
1.一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法,其特征在于,包括 設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口 ; 在第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核; 在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;并通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象,包括 獲得所述頁面對(duì)象導(dǎo)出接口提供的工廠方法; 調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象; 調(diào)用所述工廠對(duì)象創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載,包括 通過所述頁面對(duì)象提供的頁面創(chuàng)建方法,調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核創(chuàng)建頁面窗口; 在該頁面窗口中進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載。
4.根據(jù)權(quán)利要求3述的方法,其特征在于,在第二獨(dú)立進(jìn)程中進(jìn)行所述頁面內(nèi)容加載, 所述加載包括 根據(jù)接收到的http請(qǐng)求獲取頁面內(nèi)容; 對(duì)獲取到的頁面內(nèi)容進(jìn)行解析; 對(duì)解析結(jié)果執(zhí)行js操作; 根據(jù)js操作結(jié)果建立dom樹; 對(duì)dom樹進(jìn)行渲染和展現(xiàn)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述頁面瀏覽操作包括 頁面跳轉(zhuǎn),和/或,頁面窗口移動(dòng),和/或,頁面停止加載,和/或,頁面刷新,和/或,頁面的前進(jìn)、后退,和/或,頁面銷毀。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述通過所述頁面對(duì)象調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作,包括 通過所述頁面對(duì)象提供的Navigate方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作; 和/或,通過所述頁面對(duì)象提供的Imposition方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核告知所述頁面窗口跟隨外部窗口的移動(dòng)而移動(dòng); 和/或,通過所述頁面對(duì)象提供的Stop方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核停止在該頁面窗口中加載頁面內(nèi)容; 和/或,通過所述頁面對(duì)象提供的Reload方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容; 和/或,通過所述頁面對(duì)象提供的GoBack方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作; 和/或,通過所述頁面對(duì)象提供的GoForward方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作; 和/或,通過所述頁面對(duì)象提供的Destroy方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對(duì)象。
7.根據(jù)權(quán)利要求I至6任一所述的方法,其特征在于,所述通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,包括 構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄; 將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象提供的頁面創(chuàng)建方法; 通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核進(jìn)行通信。
8.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述設(shè)置一Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口,包括 通過動(dòng)態(tài)鏈接庫提供Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,調(diào)用所述頁面對(duì)象導(dǎo)出接口之前,還包括 訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑; 從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫I。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,還包括 Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng)態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于 多個(gè)第二獨(dú)立進(jìn)程從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。
12.一種基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的裝置,其特征在于,包括 接口導(dǎo)出模塊,用于設(shè)置一 Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口 ; 內(nèi)核啟動(dòng)模塊,用于在第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核; 第一調(diào)用模塊,用于在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;并 第二調(diào)用模塊,用于通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第一調(diào)用模塊包括 工廠方法獲取子模塊,用于獲得所述頁面對(duì)象導(dǎo)出接口提供的工廠方法; 工廠對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠方法創(chuàng)建工廠對(duì)象; 頁面對(duì)象創(chuàng)建子模塊,用于調(diào)用所述工廠對(duì)象創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象。
14.根據(jù)權(quán)利要求12所述的裝置,其特征在于 所述第二調(diào)用模塊通過所述頁面對(duì)象提供的頁面創(chuàng)建方法,調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核創(chuàng)建頁面窗口,并在該頁面窗口中進(jìn)行基于Webkit內(nèi)核的頁面內(nèi)容加載。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,在第二獨(dú)立進(jìn)程中進(jìn)行所述頁面內(nèi)容加載, 所述加載包括 根據(jù)接收到的http請(qǐng)求獲取頁面內(nèi)容;對(duì)獲取到的頁面內(nèi)容進(jìn)行解析; 對(duì)解析結(jié)果執(zhí)行js操作; 根據(jù)js操作結(jié)果建立dom樹; 對(duì)dom樹進(jìn)行渲染和展現(xiàn)。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述頁面瀏覽操作包括 頁面跳轉(zhuǎn),和/或,頁面窗口移動(dòng),和/或,頁面停止加載,和/或,頁面刷新,和/或,頁面的前進(jìn)、后退,和/或,頁面銷毀。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述第二調(diào)用模塊包括 導(dǎo)航調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Navigate方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面跳轉(zhuǎn)操作; 和/或,移動(dòng)調(diào)用子模塊,用于通過所述頁面對(duì)象提供的R印osition方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核告知所述頁面窗口跟隨外部窗口的移動(dòng)而移動(dòng); 和/或,停止調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Stop方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核停止在該頁面窗口中加載頁面內(nèi)容; 和/或,刷新調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Reload方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容; 和/或,頁面后退調(diào)用子模塊,用于通過所述頁面對(duì)象提供的GoBack方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作; 和/或,頁面前進(jìn)調(diào)用子模塊,用于通過所述頁面對(duì)象提供的GoForward方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作; 和/或,銷毀調(diào)用子模塊,用于通過所述頁面對(duì)象提供的Destroy方法,調(diào)用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對(duì)象。
18.根據(jù)權(quán)利要求12至17任一所述的裝置,其特征在于,所述第二調(diào)用模塊包括 構(gòu)造子模塊,用于構(gòu)造參數(shù)對(duì)象,并在所述參數(shù)對(duì)象中填充目標(biāo)訪問的網(wǎng)址和窗口句柄; 參數(shù)賦值子模塊,用于將填充后的參數(shù)對(duì)象作為參數(shù)值傳遞給所述頁面對(duì)象提供的頁面創(chuàng)建方法; 頁面創(chuàng)建子模塊,用于通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核進(jìn)行通信。
19.根據(jù)權(quán)利要求12所述的裝置,其特征在于 所述接口導(dǎo)出模塊通過動(dòng)態(tài)鏈接庫提供Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口。
20.根據(jù)權(quán)利要求19所述的裝置,其特征在于,還包括 路徑查找模塊,用于訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑; 加載模塊,用于從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。
21.根據(jù)權(quán)利要求20所述的裝置,其特征在于,還包括 更新模塊,用于Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng)態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于 多個(gè)第二獨(dú)立進(jìn)程通過從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。
全文摘要
本申請(qǐng)?zhí)峁┝艘环N基于Webkit內(nèi)核提供網(wǎng)頁瀏覽的方法及裝置,以解決瀏覽器中使用Webbrowser內(nèi)核控件而帶來的安全性弱的問題。所述方法包括設(shè)置一Webkit內(nèi)核的頁面對(duì)象導(dǎo)出接口;在第一獨(dú)立進(jìn)程中啟動(dòng)Webkit內(nèi)核;在第二獨(dú)立進(jìn)程中調(diào)用所述頁面對(duì)象導(dǎo)出接口創(chuàng)建基于Webkit內(nèi)核的頁面對(duì)象;并通過所述頁面對(duì)象調(diào)用所述第一獨(dú)立進(jìn)程中的Weblkit內(nèi)核,進(jìn)行基于Webkit內(nèi)核的頁面瀏覽操作和頁面內(nèi)容加載。本申請(qǐng)能很好地解決瀏覽器中Webbrowser內(nèi)核版本落后、安全性薄弱、不支持非微軟平臺(tái)的問題,和直接使用webkit核心導(dǎo)致的技術(shù)門檻高、升級(jí)困難、安裝包過大等問題。
文檔編號(hào)G06F9/44GK102681850SQ201210139290
公開日2012年9月19日 申請(qǐng)日期2012年5月7日 優(yōu)先權(quán)日2012年5月7日
發(fā)明者任寰, 劉慶平 申請(qǐng)人:奇智軟件(北京)有限公司