利用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
上面是GitHub對該專案的簡單介紹,大概意思就是 CefSharp使你能夠在.NET應用中嵌入瀏覽器,它是一個基於
下面以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>
最後:除錯執行
引用文章: