/或,刷新調(diào)用子模塊,用于通過所述頁面對象提供的Reload方法,調(diào)用所述獨(dú) 立進(jìn)程中的Weblkit內(nèi)核器刷新該頁面窗口中的頁面內(nèi)容;
[0072] 和/或,頁面后退調(diào)用子模塊,用于通過所述頁面對象提供的GoBack方法,調(diào)用所 述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面后退操作;
[0073] 和/或,頁面前進(jìn)調(diào)用子模塊,用于通過所述頁面對象提供的GoForward方法,調(diào) 用所述獨(dú)立進(jìn)程中的Weblkit內(nèi)核在該頁面窗口中進(jìn)行頁面前進(jìn)操作;
[0074] 和/或,銷毀調(diào)用子模塊,用于通過所述頁面對象提供的Destroy方法,調(diào)用所述 獨(dú)立進(jìn)程中的Weblkit內(nèi)核銷毀該頁面對象。
[0075] 優(yōu)選地,所述第二調(diào)用模塊包括:
[0076] 構(gòu)造子模塊,用于構(gòu)造參數(shù)對象,并在所述參數(shù)對象中填充目標(biāo)訪問的網(wǎng)址和窗 口句柄;
[0077] 參數(shù)賦值子模塊,用于將填充后的參數(shù)對象作為參數(shù)值傳遞給所述頁面對象提供 的頁面創(chuàng)建方法;
[0078] 頁面創(chuàng)建子模塊,用于通過調(diào)用參數(shù)賦值后的頁面創(chuàng)建方法,實(shí)現(xiàn)與所述獨(dú)立進(jìn) 程中的Weblkit內(nèi)核進(jìn)行通信。
[0079] 優(yōu)選地,所述接口導(dǎo)出模塊通過動(dòng)態(tài)鏈接庫提供Webkit內(nèi)核的頁面對象導(dǎo)出接 □ 〇
[0080] 優(yōu)選地,還包括:
[0081] 路徑查找模塊,用于訪問注冊表,查找注冊表中所述動(dòng)態(tài)鏈接庫的存儲(chǔ)路徑;
[0082] 加載模塊,用于從所述存儲(chǔ)路徑加載所述動(dòng)態(tài)鏈接庫。
[0083] 優(yōu)選地,還包括:
[0084] 更新模塊,用于Webkit內(nèi)核升級(jí)后更新所述動(dòng)態(tài)鏈接庫的版本,并將新版本的動(dòng) 態(tài)鏈接庫保存到不同于舊版本的存儲(chǔ)路徑。
[0085] 優(yōu)選地,多個(gè)第二獨(dú)立進(jìn)程通過從同一存儲(chǔ)路徑加載同一所述動(dòng)態(tài)鏈接庫。
[0086] 與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點(diǎn):
[0087] 本申請?zhí)岢隽艘环N跨進(jìn)程使用webkit核心實(shí)現(xiàn)網(wǎng)頁瀏覽的方法,能很好地解決 瀏覽器中的Webbrowser內(nèi)核版本落后、安全性薄弱、不支持非微軟平臺(tái)的問題,和直接使 用webkit核心導(dǎo)致的技術(shù)門濫高、升級(jí)困難、安裝包過大等問題。
[0088] 首先,本申請為WebKit內(nèi)核導(dǎo)出WebAppTabWrapper對象的接口,第三方軟件獲得 WebAppTabWrapper對象后,通過調(diào)用該對象的Create方法,通知webkit瀏覽器創(chuàng)建一個(gè)新 的頁面。網(wǎng)頁瀏覽中進(jìn)行的http請求,解析返回?cái)?shù)據(jù),執(zhí)行js,建立dom樹,完成最后渲染 等具體工作都對第三方軟件不可見,簡化了第三方軟件的技術(shù)使用難度。第三方軟件和真 正的頁面訪問、解析、渲染模塊工作在不同進(jìn)程,進(jìn)程間隔離很好的保護(hù)了第三方軟件不受 頁面不安全因素的影響。因此,本申請能很好地解決瀏覽器中使用Webbrowser內(nèi)核而帶來 的安全性薄弱、容易導(dǎo)致用戶安全的問題。
[0089] 其次,Webkit核心的升級(jí)和bug修復(fù)等,由dll服務(wù)的升級(jí)檢查功能完成。在進(jìn) 行新版本升級(jí)安裝時(shí)不影響舊版本的運(yùn)行使用,對第三方軟件完全不可見。第三方軟件通 過訪問注冊表的某個(gè)項(xiàng)目獲取新的服務(wù)版本dll路徑,加載后使用。并且,新舊版本可以同 時(shí)使用。因此,本申請能很好地解決瀏覽器中的Webbrowser內(nèi)核版本落后的問題。
[0090] 而且,本申請可以簡化第三方軟件在windows平臺(tái)和非windows平臺(tái)使用網(wǎng)頁瀏 覽增加軟件功能的開發(fā)難度,使任意第三方軟件可以使用本發(fā)明提供的網(wǎng)頁訪問服務(wù),輕 易的訪問頁面,增強(qiáng)軟件用戶體驗(yàn)。
[0091] 當(dāng)然,實(shí)施本申請的任一產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
【附圖說明】
[0092] 圖1是本申請實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程 圖;
[0093] 圖2是本申請另一實(shí)施例所述基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程 圖;
[0094] 圖3是本申請實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié)構(gòu) 圖;
[0095] 圖4是本申請另一實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié) 構(gòu)圖;
[0096] 圖5是本申請另一實(shí)施例所述基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流程 圖;
[0097] 圖6是本申請另一實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽裝置的結(jié) 構(gòu)圖。
【具體實(shí)施方式】
[0098] 為使本申請的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對本申請作進(jìn)一步詳細(xì)的說明。
[0099] 目前,越來越多其他類型的第三方軟件,如即時(shí)通訊軟件、下載軟件、甚至輸入法 等,都開始借助和使用網(wǎng)頁瀏覽器的頁面訪問能力,實(shí)現(xiàn)其軟件的某些功能,提供更好的用 戶體驗(yàn)。
[0100] 微軟的IE瀏覽器提供的Webbrowser對象存在較多的弊端,例如:
[0101] Webbrowser對象的版本過老限制了很多新的頁面技術(shù)的使用和展現(xiàn);
[0102] Webbrowser是一個(gè)安全性較弱的瀏覽器核心,容易引發(fā)安全問題;
[0103] Webbrowser容易被各種流氓軟件安裝插件,注入代碼,引發(fā)很多使用問題,比如關(guān) 閉了 flash和java運(yùn)行,導(dǎo)致相關(guān)功能失效。
[0104] 在第三方軟件實(shí)現(xiàn)網(wǎng)頁瀏覽的過程中,為了解決IE的Webbrowser內(nèi)核存在的上 述各種問題,本申請?zhí)峁┝艘环N使用webkit實(shí)現(xiàn)網(wǎng)頁瀏覽的方法。其中,所述webkit是 Chrome瀏覽器的核心,webkit是一個(gè)開放源代碼的瀏覽器引擎(web browser engine) 〇
[0105] 但是,如果在第三方軟件中直接使用webkit核心實(shí)現(xiàn)網(wǎng)頁瀏覽,存在以下缺陷:
[0106] webkit核心接口復(fù)雜,技術(shù)門檻高,增加了軟件利用其實(shí)現(xiàn)頁面瀏覽功能的技術(shù) 門檻;webkit核心代碼較多,dll (動(dòng)態(tài)鏈接庫)較大,增加了使用其軟件的體積;瀏覽器版 本更新迅速,直接包含webkit核心無法做到快速使用最新技術(shù),規(guī)避已知安全問題。
[0107] 基于此,本申請沒有直接使用webkit核心,提供了一種跨進(jìn)程的頁面瀏覽服務(wù) dll,任何第三方軟件可以在安裝了此種dll服務(wù)的系統(tǒng)上獲得頁面瀏覽能力,從而簡化了 使用webkit植染頁面的技術(shù)門濫和復(fù)雜度。
[0108] Webkit作為一個(gè)完整的瀏覽器內(nèi)核,只負(fù)責(zé)完成html解析和渲染工作,其它工作 如網(wǎng)絡(luò)連接請求、js解析、外圍包裝等,都需要第三方軟件實(shí)現(xiàn)后,webkit才能正常工作。 而實(shí)現(xiàn)一個(gè)良好的http協(xié)議棧和js解析器難度巨大,工作復(fù)雜。
[0109] 本申請中的這種頁面瀏覽的dll服務(wù)可以理解為一個(gè)代理,代理封裝了網(wǎng)絡(luò)連接 請求、js解析、外圍包裝等工作,從而將這些用戶不關(guān)心又復(fù)雜的部分對用戶進(jìn)行了屏蔽; 并且,代理還封裝了簡單的接口來調(diào)用幾個(gè)基本的webkit瀏覽器操作。第三方軟件可以通 過這種dll服務(wù)實(shí)現(xiàn)與webkit核心的通信,用戶只需給出url和一個(gè)用于承載頁面的窗口 句柄,就可以得到一個(gè)渲染完成的網(wǎng)頁。由于網(wǎng)頁瀏覽過程中的很多工作都由dll服務(wù)完 成,因此簡化了第三方軟件的開發(fā)。
[0110] 下面通過實(shí)施例對本申請所述方法的實(shí)現(xiàn)流程進(jìn)行詳細(xì)說明。
[0111] 參照圖1,是本申請實(shí)施例所述一種基于webkit核心的跨進(jìn)程網(wǎng)頁瀏覽方法的流 程圖。
[0112] 步驟101,通過自定義接口加載動(dòng)態(tài)鏈接庫;
[0113] 所述自定義接口包括外部接口和內(nèi)部接口,通過外部接口可以加載動(dòng)態(tài)鏈接庫。
[0114] 動(dòng)態(tài)鏈接庫(dll服務(wù))提供給第三方軟件使用的是外部接口,第三方軟件實(shí)現(xiàn)這 些簡單的外部接口后,就可以與動(dòng)態(tài)鏈接庫通信。
[0115] 動(dòng)態(tài)鏈接庫還提供了 Webkit內(nèi)核的頁面對象導(dǎo)出接口,這些內(nèi)部接口為webkit 內(nèi)核導(dǎo)出的類似IE的Webbrowser對象的接口,但具體的接口數(shù)目和使用復(fù)雜度要大大低 于IE的Webbrowser。而且,傳統(tǒng)方法包裝webkit需要實(shí)現(xiàn)數(shù)百個(gè)接口,但本申請實(shí)施例中 第三方軟件所需實(shí)現(xiàn)的接口數(shù)目非常少,但