• <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 楊粼波 閱讀(6033) 評論(0)  編輯 收藏 引用 所屬分類: 網絡編程 、C++

            久久久久成人精品无码中文字幕| 欧美777精品久久久久网| 国产成人久久久精品二区三区| 亚洲国产精品无码久久一线| 久久热这里只有精品在线观看| 久久久久18| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久精品女人天堂AV麻| 久久精品国产秦先生| 一级做a爰片久久毛片人呢| 久久狠狠色狠狠色综合| 久久精品国产精品青草app| 久久精品视频免费| 久久亚洲精品无码观看不卡| 日本欧美国产精品第一页久久| 天天做夜夜做久久做狠狠| 精品久久久一二三区| 色88久久久久高潮综合影院| 国产精品一久久香蕉国产线看| 99久久久国产精品免费无卡顿| 国产精品久久久久久久午夜片 | 久久人人爽人人爽人人片AV东京热| 亚洲国产精品无码久久久久久曰 | 77777亚洲午夜久久多喷| 欧美精品久久久久久久自慰| 国产成人精品久久免费动漫| 久久高清一级毛片| 中文字幕日本人妻久久久免费| 成人综合伊人五月婷久久| 久久伊人中文无码| 久久99精品国产麻豆 | 亚洲AⅤ优女AV综合久久久| 伊人久久大香线蕉亚洲| 久久综合丝袜日本网| 久久久久久久久久久精品尤物| 久久久久国产精品| 亚洲综合精品香蕉久久网| 国产视频久久| 国产精品久久久久久吹潮| 亚洲精品成人久久久| 品成人欧美大片久久国产欧美|