Cef之接口介紹01

CEF3基本的框架包含C/C++程 序接口,通過本地庫的接口來實現,而這個庫則會隔離宿主程序和 Chromium&Webkit的操作細節。它在瀏覽器控件和宿主程序之間提供緊密的整合,它支持用戶插件,協議,JavaScript對象以及 javascript擴展,宿主程序可以隨意地控件資源下載,導航,下下文內容和打印等。下邊總結一些最常用到的類和接口,便於瞭解整個cef3的代碼。

CefBrowser是主要的瀏覽器窗口類,可以用靜態的函數CreateBrowser() 和CreateBrowserSync() 來創建一個新的瀏覽器窗口,公開由瀏覽器提供的功能。包括前進後退導航,來源檢索,加載請求等。

CefFrame 代表一個瀏覽器窗口的框架,每個瀏覽器窗口有一個頂層的主框架,而這個主框架可以用GetMainFrame() 方法得到。

CefBrowser和CefFrame對象被用來發送命令給瀏覽器以及在回調函數裏獲取狀態信息。每個CefBrowser對象包含一個主 CefFrame對象,主CefFrame對象代表頁面的頂層frame;同時每個CefBrowser對象可以包含零個或多個的CefFrame對象, 分別代表不同的子Frame。例如,一個瀏覽器加載了兩個iframe,則該CefBrowser對象擁有三個CefFrame對象(頂層frame和兩 個iframe)。

CefApp,此接口用來傳遞到CefInitialize(),和允許應用程序定製全局,如資源加載,代理。一些功能是由所有進程共享的,有些必須實現瀏覽器的過程中,必須在渲染過程中執行。見詳情頭文件的註釋。

CefClient:是主瀏覽器窗口的代表接口,這個接口做爲參數傳遞給CreateBrowser()

CefRequest:代表URL,方法,發送數據和頭文件等這樣的請求。

CefSchemeHandleFactory:被用來處理像myscheme://mydomain類似客戶計劃的請求

CefReadHandler和CefWriteHandle是一個讀寫數據的簡單接口。

CefV8Handler,CefV8Value和CefV8Context是被用來創建和訪問JavaScript對象。

CefBrowserHost:有關運行browser進程中唯一可用的browser窗口的功能。例如,檢索本地父窗口句柄,或銷燬browser窗口。

CefRenderProcessHandler:WebKit和V8對渲染進程中應用程序的集成能力。通過CefApp返回此對象的一個​​實例。

CefCookie:處理cookie的功能。

 

使用CEF3開發的過程中,CefClient使用最頻繁的,瞭解cefclient中的回調類是很有必要的。所謂回調類,就是瀏覽器相關的動作發生時,去回調一些事件函數,用戶可以在事件中獲取或修改相關的信息。cefclient中的回調類包括:

CefContextMenuHandler,回調類,主要用於處理 Context Menu 事件。

CefDialogHandler,回調類,主要用來處理對話框事件。

CefDisplayHandler,回調類,處理與頁面狀態相關的事件,如頁面加載情況的變化,地址欄變化,標題變化等事件。

GetDragHandler,回調類,處理拖拽相關的事件,如從外邊拖入瀏覽器事件

CefDownloadHandler,回調類,主要用來處理文件下載。

CefFocusHandler,回調類,主要用來處理焦點事件。

CefGeolocationHandler,回調類,用於申請 geolocation 權限。

CefJSDialogHandler,回調類,主要用來處理 js 對話框事件。

CefKeyboardHandler,回調類,主要用來處理鍵盤輸入事件。

CefLifeSpanHandler,回調類,主要用來處理與瀏覽器生命週期相關的事件,與瀏覽器對象的創建、銷燬以及彈出框的管理。

CefLoadHandler,回調類,主要用來處理瀏覽器頁面加載狀態的變化,如頁面加載開始,完成,出錯等。

CefRenderHandler,回調類,主要用來處在在窗口渲染功能被關閉的情況下的事件。

CefRequestHandler,回調類,主要用來處理與瀏覽器請求相關的的事件,如資源的的加載,重定向等。

 

CEF3的CefBrowser類是實現瀏覽器最主要的一個類。主要有以下實現類組成:

CefMainDelegate實現通用進程的引導邏輯。

CefContentClient實現所有進程中共同的ContentAPI回調。

CefContext代表全局CEF內容在browser進程中。單個CefContext對象由CefInitialize()創建並由CefShutdown()銷燬。

CefBrowserMainParts實現browser進程中的引導邏輯。

CefContentBrowserClient實現browser進程的ContentAPI回調。

CefBrowserHostImpl實現在browser進程中CefBrowser和CefBrowserHost的接口。提供粘合代碼和工具的接口來和RenderViewHost通信。

CefContentRendererClient實現渲染進程中的ContentAPI回調。

CefBrowserImpl實現渲染進程中的CefBrowser接口。提供粘合代碼和工具的藉口來和RenderView通信。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章