• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Chromium Embedded Framework中文文檔之(基本使用)

            轉載自:http://www.cnblogs.com/think/archive/2011/10/06/CEF-genericUsage.html

            一般用法

            使用CEF便捷的創建一個全功能的內建瀏覽器如下所示:

            // Define an instance of our CefHandler implementation. Various methods in the MyHandler // instance will be called to customize browser behavior.  CefRefPtr<CefHandler> handler(new MyHandler()); // Provide information about the parent window, client rectangle, etc. CefWindowInfo info = {...}; // Create the new browser window object, which eventually results in a call to // MyHandler::HandleAfterCreated(). CefBrowser::CreateBrowser(info, false, handler, L"http://www.google.com");

            在tests目錄下有一個客戶端程序的示例,叫cefclient。

            文件結構

            CEF資料庫結構如下:

            • include -- 包括用于CEF客戶端程序的include文件。
            • libcef -- libcef實現。
            • libcef_dll -- libcef C API 和 DLL 實現.
            • tests -- 測試程序.
              • cefclient -- CEF客戶端應用程序示例。
              • unittests -- CEF接口單元測試。

            瀏覽器通知

            瀏覽器通知是通過注冊的委托接口由瀏覽器發到客戶端程序的通知, CefHandler是最主要的委托接口, CefJSHandler則用于實現自定義的Javascript對象。

            CefHandler支持以下接口:

            • 窗口創建之前 (HandleBeforeCreated),客戶端可用之取消與定制瀏覽器窗口創建過程。
            • 窗口創建之后(HandleAfterCreated). 可用于創建自定義的CefJSHandler對象。
            • 地址欄更新(HandleAddressChange). 將地址欄更改為指定的字符串,通知發生于導航提交后與頁面加載前。
            • 標題更新(HandleTitleChange). 將標題更改為指定的字符串,發生在頁面加載中。
            • 瀏覽前(HandleBeforeBrowse). 可用于取消導航,該事件的信息包括URL,Post數據,請求頭.
            • 開始加載(HandleLoadStart). 
            • 加載結束 (HandleLoadEnd). 
            • 加載錯誤(HandleLoadError). 加載過程中遇到錯誤,應用程序可提供自定義的錯誤頁面.
            • 資源加載前 (HandleBeforeResourceLoad). 應用程序可提供替代的數據源 (比如內存中的緩存)或者取消加載.
            • 顯示菜單前(HandleBeforeMenu). 可用于取消上下文菜單顯示或定制菜單,默認情況下,瀏覽器根據上下文顯示基本的菜單.
            • 獲取菜單標簽(HandleGetMenuLabel).在默認菜單顯示前,每個菜單項調用一次,可用于將英文默認內容改為其它語言.
            • 菜單動作(HandleMenuAction). 用戶從默認上下文菜單選擇了一個選項,可用自己的方式來處理動作。
            • 打印選項(HandlePrintOptions). 打印設置對話框顯示前調用,可用于定制頁面大小、方向與邊距等.
            • 打印頁眉頁腳 (HandlePrintHeaderFooter). 在頁面視圖輸出到打印上下文,但是頁面結束前,可在預定義的6個位置(上左、上中、上右、下左,下中,下右)插入自定義的頁眉、頁腳字符串。該事件附帶的信息包括當前URL、標題、頁碼、總頁數、打印上下文、頁邊距與DPI拉伸比.
            • JavaScript警告 (HandleJSAlert). 應用程序可自定義Javascript Alert窗口.
            • JavaScrip確認 (HandleJSConfirm). 應用程序可自定義Javascript Comfirm窗口
            • JavaScrip提示 (HandleJSPrompt). 應用程序可自定義Javascript Prompt窗口
            • JavaScript Window 對象綁定 (HandleJSBinding). 應用程序將用戶定義的方法和變量附加到frame的window對象上
            • Window關閉前 (HandleBeforeWindowClose). 窗口關閉前
            • 獲得焦點(HandleTakeFocus). 瀏覽器組件失去焦點前調用
            • 設置焦點(HandleSetFocus). 瀏覽器組件請求焦點前調用
            • 鍵盤事件(HandleKeyEvent). 瀏覽器組件接收到鍵盤事件時
            • 提示 (HandleTooltip). 用于修改tooltip文字
            • 控制臺消息 (HandleConsoleMessage). 用于顯示控制臺消息.
            • 查詢結果(HandleFindResult).用于自定義查找結果顯示處理

            CefV8Handler支持以下通知:

            • 執行事件(Execute). 應用程序執行指定的函數,該事件提供所有的Javascript參數,而且應用程序能指定返回值

            瀏覽器事件

            瀏覽器事件由客戶端應用程序通過CefBrowser和CefFrame的函數發送給瀏覽器:

            • 后退、前進、重新加載與停止加載,用于控制瀏覽器導航.
            • 撤消、重做、剪切、復制、粘貼、刪除、全選,用于控制目標區域內容.
            • 打印. 打印目標框架.
            • 查看源代碼. 將目標框架的HTML源代碼保存到臨時文件,并用默認的文本查看程序打開之
            • 加載URL. 在指定框架中加載指定URL
            • 載入字符串. 根據一個假URL在指定框架中加載某個字符串
            • 加載流. 根據一個假URL,在指定框架中加載二進制數據
            • 加載請求. 在指定框架中加載請求(URL, method, request data 與 headers) .
            • 執行腳本. 在目標框架中執行任意Javascript命令

            內嵌 NPAPI 插件

            CEF支持創建Netscape-style內嵌插件,使用相同 NPAPI的內嵌插件和標準的DLL插件行為相同,但是,相對于使用獨立的DLL,內嵌插件由容器應用程序創建,并通過調用CefRegisterPlugin()注冊到系統,如果要直接使用這一功能,需要include cef_nplugin.h .

            JavaScript擴展

            CEF支持可以和原生應用程序代碼交互的Javascript擴展,參見cef.h的CefRegisterExtension() 函數和cefclient示例程序的"JavaScript Extension Handler" 以及 "UI App Example" 測試 .

            自定義Schemes

            CEF支持注冊與處理自定義scheme,類似于myscheme://mydomain。參見cef.h中的CefRegisterScheme()函數與示例應用程序cefclient中的 "Scheme Handler" 測試.

            框架實現概覽

            CEF所有的類以Cef為前綴.

            框架準備與拆卸

            UI消息循環由框架創建的一個單獨線程處理,客戶端程序應負責通過分別調用CefInitialize()和CefShutdown() 來為每個進程準備與關閉這一線程。

            引用計數

            所有實現了CefBase接口的框架類與對象指針都由CefRefPtr智能指針實現來處理,通過調用AddRef()和Release()自動處理引用計數。

            平臺無關

            CEF框架被設計成平臺無關,需要當前我們僅支持windows平臺,但是我們計劃將來支持其它平臺。為了盡可能減少雙平臺支持帶來的麻煩,框架定義了一系列實現無關的接口與類型定義包裝跨平臺的行為。

            線程安全

            框架的所有接口實現必須是跨線程訪問安全的,CefThreadSafeBase 模版提供原子的AddRef() 和 Release() 實現,還提供Lock() 和 Unlock()方法以同步方式訪問代碼塊.

            框架接口

            框架定義了如下接口:

            • CefBrowser 是主要的瀏覽器host類,通過它的靜態方法CefBrowser::CreateBrowser()方法創建新瀏覽器窗口.
            • CefFrame 表示瀏覽器窗口里的一個框架(frame),每個瀏覽器窗口都有一個頂級的主框架,可通過CefBrowser::GetMainFrame()方法訪問之.
            • CefHandler 是傳給CefBrowser::CreateBrowser()方法的最主要委托接口.
            • CefRequest 表示請求數據,比如url, method, post data 和 headers.
            • CefPostData 和 CefPostDataElement 表示可能是請求一部分的post數據.
            • CefSchemeHandlerFactory 和 CefSchemeHandler 用于處理像myscheme://mydomain這樣的自定義scheme.
            • CefStreamReaderCefStreamWriterCefReadHandler 和 CefWriteHandler 讀寫數據的簡單的接口.
            • CefV8Handler 和 CefV8Value 用于創建和訪問Javascript對象.

            posted on 2012-08-10 14:34 楊粼波 閱讀(6041) 評論(0)  編輯 收藏 引用 所屬分類: 網絡編程 、C++

            无码人妻久久一区二区三区| 99久久精品费精品国产一区二区| 99久久精品费精品国产一区二区| 色欲综合久久躁天天躁| 久久久精品视频免费观看| 一本大道加勒比久久综合| 亚洲嫩草影院久久精品| 国内精品久久久久久久coent| 办公室久久精品| 久久久久国产精品嫩草影院 | 欧美精品九九99久久在观看| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 成人a毛片久久免费播放| 91精品国产91久久| 久久九九久精品国产| 少妇久久久久久被弄到高潮| 国产精品99久久久精品无码| 久久久久免费精品国产| 久久91精品国产91| 久久久久久久人妻无码中文字幕爆| 亚洲国产精品无码成人片久久| 精品国产一区二区三区久久久狼| 青青草原综合久久大伊人精品| 久久国产免费| 久久无码人妻一区二区三区午夜| 中文字幕亚洲综合久久| 青青草国产97免久久费观看| 久久久无码精品亚洲日韩按摩 | 久久久噜噜噜久久中文字幕色伊伊| 无码乱码观看精品久久| 久久精品无码一区二区无码| 国内精品久久久久久久久| 久久精品国产亚洲AV香蕉| 久久国产精品久久国产精品| 亚洲人成无码www久久久| 国产精品视频久久| 久久99热这里只频精品6| 久久亚洲国产欧洲精品一| 狠狠色噜噜色狠狠狠综合久久| AAA级久久久精品无码区| 日本久久久久亚洲中字幕 |