1. 程式人生 > >利用CEFSharp在WPF中顯示網頁(可實現PC端的混合開發,Web與硬體互動)

利用CEFSharp在WPF中顯示網頁(可實現PC端的混合開發,Web與硬體互動)

最近遇見Web應用需要呼叫身份證讀卡器等硬體介面,按照一般解決辦法封裝一個OCX控制元件就完事了。但是問題就出現了,目前只有IE支援ActiveX控制元件,IE載入控制元件還需要點“允許”等等。由於本人比較抵觸IE的,所以看這樣的實現方式怎麼都是不爽就對了(我想很多人都是這樣子)

對這個問題想過多個解決辦法,包括建立Windows服務之類的。搜到了CEFSharp這個專案,稍微並且稍微除錯了一下,能夠很好的顯示網頁。

CefSharp lets you embed Chromium in .NET apps. It is a lightweight .NET wrapper around the 

Chromium Embedded Framework (CEF) by Marshall A. Greenblatt. About 30% of the bindings are written in C++/CLI with the majority of code here is C#. It can be used from C# or VB, or any other CLR language. CefSharp provides both WPF and WinForms web browser control implementations.

上面是GitHub對該專案的簡單介紹,大概意思就是 CefSharp使你能夠在.NET應用中嵌入瀏覽器,它是一個基於

Chromium Embedded Framework (CEF) 的輕量級框架,它有百分之三十的程式碼是基於C++/CLI編寫的,其餘的大部分利用C#寫的。它能夠被用於C#、VB以及其他的公共執行庫語言。並且提供了WPF與WinForms的相關控制元件。

下面以WPF為例:

第一步,建立WPF窗體應用,並要求.net 框架至少在4.5.2或以上

第二步:配置解決方案(注意這裡是配置解決方案,不是專案),新增x64,x86目標平臺並移除AnyCpu的配置。接著選擇相應的目標平臺。

第三步:新增CEFSharp依賴

第四步:新增名稱空間與控制元件

<Window x:Class="MK.Browser.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MK.Browser"
        xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <cefSharp:ChromiumWebBrowser Name="Browser" Grid.Row="0" Address="www.baidu.com"/>
    </Grid>
</Window>

最後:除錯執行

引用文章: