日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于CefGlue的桌面应用开发

發布時間:2024/8/26 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于CefGlue的桌面应用开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

如果你想使用WEB技術來開發桌面客戶端,并且是想使用的語言也是C#時,那請耐心往下看。使用WEB技術開發桌面客戶端的核心其實就是使用一個能夠獨立運行WEB前端的組件,如WinForm中的WebBrowser,Android平臺的WebView,以及Qt提供的WebView,等等。對于桌面客戶端開發而言,使用WebBrowser空間依賴于客戶端安裝的IE瀏覽器版本,而且IE本身的種種詬病讓人望而生畏。而如今,Chrome瀏覽器突飛猛進的發展大家有目共睹,而且其使用的核心?CEF?和Webkit一樣是開源的。由于Chromium是C/C++開發的,想要在C#中使用需要再次封裝,一些基于Chromium的瀏覽器控件便應運而生。如今,市面上存在的基于Chromium的C#封裝有:

  • Xilium.CefGlue
  • CefSharp
  • O.N.E
  • WebKit.NET
  • Open-Webkit-Sharp

關于這幾個項目的優劣,?牛A與牛C之間?做了非常細致的比較,請參看?.NET多種WebKit內核/Blink內核瀏覽器初步測評報告?。最終優勝的為?Xilium.CefGlue?。此前,本作者使用過?CefSharp?,感覺很明顯的優點是JS和C#之間的互調非常方便,由于本作者只是使用CefSharp開發一個小工具,所以性能和發布方面的問題暫時未碰到。

值得一提的是CEF有兩個版本CEF1和CEF3。

  • CEF1是單進程的。實現了更多的特性,內存使用更少,與客戶端應用更能完美的結合,使用的是WebKit的API,但是FLASH無法在這個框架中正常播放,不支持html5的音頻和視頻,只支持NPAPI插件。關于NPAPI插件的相關知識,請參閱這里:http://developer.chrome.com/extensions/npapi.html?。

  • CEF3是多進程的。使用異步消息的方式來完成主進程和其他進程的通信(其他進程有可能是Webkit,也有可能是V8的解析引擎進程),使用的是chromium官方- 的內容呈現API,支持NPAPI和PPAPI插件,有一個單獨的進程用于調試,相對于CEF1來說,雖然可以播放FLASH等視頻,但是還有很多問題沒有處理掉,社區里的人認為CEF1更穩定一些。

我們選用的是CEF3和Xilium.CefGlue,Xilium.CefGlue是對CEF項目的.net的包裝,它是用P/Invoke的方式來調用CEF類庫的,請參見:https://bitbucket.org/xilium/xilium.cefglue/wiki/Home。

下面我們就?Xilium.CefGlue?開發桌面應用中需要解決的問題逐一分析。

運行官方Demo

Clone或下載CefGlue

CefGlue的源碼地址為?https://bitbucket.org/xilium/xilium.cefglue/?,里邊除了源碼,還包含Winform和Wpf的Demo。Clone或者下載下來。

下載后,Unload或者刪除其中的?CefGlue.Demo.GtkSharp?項目,這個項目是在Linux平臺使用的。將CefGlue.Demo.WinForms?設為啟動項目。

下載CEF動態鏈接庫

CefGlue依賴的CEF的?版本支持?請參考?http://xilium.bitbucket.org/cefglue/?。CefGlue當前支持的CEF的最新版本為3.1650.1503,也就是當前的CEF的最新版本(不算開發分支),下載地址為?http://cefbuilds.com/?。

CEF同時提供Linux、Mac、Windows平臺的x86、x64版本,本作者所有的實驗均在Windows平臺完成,使用的系統為?Windows8 x64?。如果你的機器是x64的,那么x64和x86的CEF版本均可使用。唯一的區別是,如果你使用的是x86的版本,你需要將CefGlue項目的CefGlue.Demo.WinForms?工程屬性下的?Build?選項的Platform target設置為x86,而非默認的AnyCPU。我們以x64平臺為例,假設下載下來的文件件為cef_binary_3.1650.1544_windows64。

  • 將?cef_binary_3.1650.1544_windows64/Release/?或者?cef_binary_3.1650.1544_windows64/Debug/?下的內容拷貝到CefGlue項目下的?CefGlue.Demo.WinForms/CefGlue.Demo.WinForms/bin/Debug/?目錄下。當然,在實際項目中我們可能將這些文件拷貝到工程目錄的一個文件夾中,然后使用工程屬性下的Build Event選項將這些文件拷貝到Debug目錄下,具體做法可以參考?怎么用CefGlue開發一個最簡單的瀏覽器?。

  • 將?cef_binary_3.1650.1544_windows64/Resources/locales?目錄下的文件拷貝到CefGlue.Demo.WinForms/CefGlue.Demo.WinForms/bin/Debug/locales?目錄下。

?

轉自:http://www.tuicool.com/articles/MZRnqae

轉載于:https://www.cnblogs.com/feelSku/p/10019146.html

總結

以上是生活随笔為你收集整理的基于CefGlue的桌面应用开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。