一種基于Webkit內核提供網(wǎng)頁瀏覽的方法及裝置的制造方法
【技術領域】
[0001] 本申請涉及網(wǎng)頁技術,特別是涉及一種基于Webkit內核提供網(wǎng)頁瀏覽的方法及 裝置。
【背景技術】
[0002] 網(wǎng)頁瀏覽器在全球廣泛使用,是一種用于訪問互聯(lián)網(wǎng)獲取資訊的應用軟件。隨著 技術的進步和發(fā)展,越來越多其他類型的軟件,如即時通訊軟件、下載軟件、甚至輸入法等, 都開始借助和使用網(wǎng)頁瀏覽器的頁面訪問能力,實現(xiàn)其軟件的某些功能,提供更好的用戶 體驗。
[0003] 目前的實現(xiàn)方式,大多使用微軟提供的Webbrowser對象,通過在進程內實現(xiàn)一個 Webbrowser COM對象來訪問頁面,實現(xiàn)相關功能。
[0004] 這一技術實現(xiàn)方式存在以下弊端,例如:
[0005] Webbrowser是一個安全性較弱的瀏覽器控件,容易引發(fā)安全問題。
【發(fā)明內容】
[0006] 本申請?zhí)峁┝艘环N基于Webkit內核提供網(wǎng)頁瀏覽的方法及裝置,以解決瀏覽器 中使用Webbrowser內核控件而帶來的安全性弱的問題。
[0007] 為了解決上述問題,本申請公開了一種基于Webkit內核提供網(wǎng)頁瀏覽的方法,包 括:
[0008] 設置一 Webkit內核的頁面對象導出接口;
[0009] 在第一獨立進程中啟動Webkit內核;
[0010] 在第二獨立進程中調用所述頁面對象導出接口創(chuàng)建基于Webkit內核的頁面對 象;并
[0011] 通過所述頁面對象調用所述第一獨立進程中的Weblkit內核,進行基于Webkit內 核的頁面瀏覽操作和頁面內容加載。
[0012] 優(yōu)選地,所述調用所述頁面對象導出接口創(chuàng)建基于Webkit內核的頁面對象,包 括:
[0013] 獲得所述頁面對象導出接口提供的工廠方法;
[0014] 調用所述工廠方法創(chuàng)建工廠對象;
[0015] 調用所述工廠對象創(chuàng)建基于Webkit內核的頁面對象。
[0016] 優(yōu)選地,所述通過所述頁面對象調用所述第一獨立進程中的Weblkit內核,進行 基于Webkit內核的頁面內容加載,包括:
[0017] 通過所述頁面對象提供的頁面創(chuàng)建方法,調用所述第一獨立進程中的Weblkit內 核創(chuàng)建頁面窗口;
[0018] 在該頁面窗口中進行基于Webkit內核的頁面內容加載。
[0019] 優(yōu)選地,在第二獨立進程中進行所述頁面內容加載,
[0020] 所述加載包括:
[0021] 根據(jù)接收到的http請求獲取頁面內容;
[0022] 對獲取到的頁面內容進行解析;
[0023] 對解析結果執(zhí)行j s操作;
[0024] 根據(jù)js操作結果建立dom樹;
[0025] 對dom樹進行植染和展現(xiàn)。
[0026] 優(yōu)選地,所述頁面瀏覽操作包括:
[0027] 頁面跳轉,和/或,頁面窗口移動,和/或,頁面停止加載,和/或,頁面刷新,和/ 或,頁面的前進、后退,和/或,頁面銷毀。
[0028] 優(yōu)選地,所述通過所述頁面對象調用所述獨立進程中的Weblkit內核,進行基于 Webkit內核的頁面瀏覽操作,包括:
[0029] 通過所述頁面對象提供的Navigate方法,調用所述獨立進程中的Weblkit內核在 該頁面窗口中進行頁面跳轉操作;
[0030] 和/或,通過所述頁面對象提供的R印OSition方法,調用所述獨立進程中的 Weblkit內核告知所述頁面窗口跟隨外部窗口的移動而移動;
[0031] 和/或,通過所述頁面對象提供的Stop方法,調用所述獨立進程中的Weblkit內 核停止在該頁面窗口中加載頁面內容;
[0032] 和/或,通過所述頁面對象提供的Reload方法,調用所述獨立進程中的Weblkit 內核器刷新該頁面窗口中的頁面內容;
[0033] 和/或,通過所述頁面對象提供的GoBack方法,調用所述獨立進程中的Weblkit 內核在該頁面窗口中進行頁面后退操作;
[0034] 和/或,通過所述頁面對象提供的GoForward方法,調用所述獨立進程中的 Weblkit內核在該頁面窗口中進行頁面前進操作;
[0035] 和/或,通過所述頁面對象提供的Destroy方法,調用所述獨立進程中的Weblkit 內核銷毀該頁面對象。
[0036] 優(yōu)選地,所述通過所述頁面對象調用所述第一獨立進程中的Weblkit內核,包括:
[0037] 構造參數(shù)對象,并在所述參數(shù)對象中填充目標訪問的網(wǎng)址和窗口句柄;
[0038] 將填充后的參數(shù)對象作為參數(shù)值傳遞給所述頁面對象提供的頁面創(chuàng)建方法;
[0039] 通過調用參數(shù)賦值后的頁面創(chuàng)建方法,實現(xiàn)與所述獨立進程中的Weblkit內核進 行通信。
[0040] 優(yōu)選地,所述設置一 Webkit內核的頁面對象導出接口,包括:
[0041] 通過動態(tài)鏈接庫提供Webkit內核的頁面對象導出接口。
[0042] 優(yōu)選地,調用所述頁面對象導出接口之前,還包括:
[0043] 訪問注冊表,查找注冊表中所述動態(tài)鏈接庫的存儲路徑;
[0044] 從所述存儲路徑加載所述動態(tài)鏈接庫。
[0045] 優(yōu)選地,還包括:
[0046] Webkit內核升級后更新所述動態(tài)鏈接庫的版本,并將新版本的動態(tài)鏈接庫保存到 不同于舊版本的存儲路徑。
[0047] 優(yōu)選地,多個第二獨立進程從同一存儲路徑加載同一所述動態(tài)鏈接庫。
[0048] 本申請還提供了一種基于Webkit內核提供網(wǎng)頁瀏覽的裝置,包括:
[0049] 接口導出模塊,用于設置一 Webkit內核的頁面對象導出接口;
[0050] 內核啟動模塊,用于在第一獨立進程中啟動Webkit內核;
[0051] 第一調用模塊,用于在第二獨立進程中調用所述頁面對象導出接口創(chuàng)建基于 Webkit內核的頁面對象;并
[0052] 第二調用模塊,用于通過所述頁面對象調用所述第一獨立進程中的Weblkit內 核,進行基于Webkit內核的頁面瀏覽操作和頁面內容加載。
[0053] 優(yōu)選地,所述第一調用模塊包括:
[0054] 工廠方法獲取子模塊,用于獲得所述頁面對象導出接口提供的工廠方法;
[0055] 工廠對象創(chuàng)建子模塊,用于調用所述工廠方法創(chuàng)建工廠對象;
[0056] 頁面對象創(chuàng)建子模塊,用于調用所述工廠對象創(chuàng)建基于Webkit內核的頁面對象。
[0057] 優(yōu)選地,所述第二調用模塊通過所述頁面對象提供的頁面創(chuàng)建方法,調用所述第 一獨立進程中的Weblkit內核創(chuàng)建頁面窗口,并在該頁面窗口中進行基于Webkit內核的頁 面內容加載。
[0058] 優(yōu)選地,在第二獨立進程中進行所述頁面內容加載,
[0059] 所述加載包括:
[0060] 根據(jù)接收到的http請求獲取頁面內容;
[0061] 對獲取到的頁面內容進行解析;
[0062] 對解析結果執(zhí)行j s操作;
[0063] 根據(jù)js操作結果建立dom樹;
[0064] 對dom樹進行植染和展現(xiàn)。
[0065] 優(yōu)選地,所述頁面瀏覽操作包括:
[0066] 頁面跳轉,和/或,頁面窗口移動,和/或,頁面停止加載,和/或,頁面刷新,和/ 或,頁面的前進、后退,和/或,頁面銷毀。
[0067] 優(yōu)選地,所述第二調用模塊包括:
[0068] 導航調用子模塊,用于通過所述頁面對象提供的Navigate方法,調用所述獨立進 程中的Weblkit內核在該頁面窗口中進行頁面跳轉操作;
[0069] 和/或,移動調用子模塊,用于通過所述頁面對象提供的R印osition方法,調用所 述獨立進程中的Weblkit內核告知所述頁面窗口跟隨外部窗口的移動而移動;
[0070] 和/或,停止調用子模塊,用于通過所述頁面對象提供的Stop方法,調用所述獨立 進程中的Weblkit內核停止在該頁面窗口中加載頁面內容;
[0071 ] 和