衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Cefsharp 的使用

汽車電子技術 ? 來源:程序猿知秋 ? 作者:程序猿知秋 ? 2023-02-28 09:47 ? 次閱讀

圖片

安裝

Cefsharp簡介

  • CEF , 全稱Chromium Embedded Framework ,基于谷歌 Chromium項目的開源Web Browser控件,它的主要用途是嵌入了第三方應用以實現瀏覽器相關的功能。例如國內的360安全瀏覽器的兼容模式即IE的內核,極速模式即Chromium內核;最近微軟新推出的Microsoft Edge也是基于Chromium開源項目實現的
  • CefSharp是Cef的C#版本,讓Chromium瀏覽器也可嵌入WinForms 中

安裝步驟

  • 第一步: 右鍵項目,點擊 管理NuGet程序包 , 輸入Cefsharp 關鍵字搜索, 選擇 **CefSharp.WinForms **進行安裝

圖片編輯

安裝完后,以packages.config中可以看到如下信息

圖片編輯

  • ** 第二步: 修改配置管理器,將平臺修改為X86或X64,Cef有32和64位之分**

圖片編輯

活動方案解決平臺 下拉,點擊新建

圖片編輯

**** **選擇 X86 ** ,點擊確定,接著關閉即可


圖片編輯

  • **** 第三步: 編寫代碼,初始化瀏覽器****
using CefSharp;
using CefSharp.WinForms;
using System.Windows.Forms;


namespace 我的瀏覽器
{
    public partial class Form1 : Form
    {
        // 瀏覽器對象
        public ChromiumWebBrowser chromeBrowser;
        public Form1()
{
            InitializeComponent();

        }


        public void InitCef()
{
            //參數設置
            CefSettings settings = new CefSettings();
          //  settings.Locale = "zh-CN";
            // settings.CefCommandLineArgs.Add("disable-gpu", "1");//去掉gpu,否則chrome顯示有問題
            Cef.Initialize(settings);
            //創建實例
            chromeBrowser = new ChromiumWebBrowser("https://www.baidu.com");
            // 將瀏覽器放入容器中
            this.Controls.Add(chromeBrowser);
            chromeBrowser.Dock = DockStyle.Fill;
        }


        private void Form1_Load(object sender, System.EventArgs e)
{
            // 初始化瀏覽器
            InitCef();
        }
    }
}

最終啟動程序,成功訪問百度

圖片編輯

常見疑問

右鍵菜單如何禁用?

  • 設置ChromiumWebBrowser的 MenuHandler屬性即可
  • chromeBrowser.MenuHandler = new MenuHandler();  //禁用右鍵菜單
    點擊并拖拽以移動
    

如何添加頁面加載完成回調事件?

  • 設置ChromiumWebBrowser的 FrameLoadEnd 屬性
  • public void InitCef()
    {
      //參數設置
      CefSettings settings = new CefSettings();
      //  settings.Locale = "zh-CN";
      // settings.CefCommandLineArgs.Add("disable-gpu", "1");//去掉gpu,否則chrome顯示有問題
      Cef.Initialize(settings);
      //創建實例
      chromeBrowser = new ChromiumWebBrowser("https://www.baidu.com");
      // 將瀏覽器放入容器中
      this.Controls.Add(chromeBrowser);
      chromeBrowser.Dock = DockStyle.Fill;
      //頁面加載完成事件
      chromeBrowser.FrameLoadEnd += webview_FrameLoadEnd;
    }
    
    
    private void webview_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
    {
      // 代碼
    }
    

瀏覽器中的 js如何回調到 winform窗體中?

  • 初始化chromeBrowser對象時,需要事先注冊好回調方法
  • public void InitCef()
    {
      //參數設置
      CefSettings settings = new CefSettings();
      Cef.Initialize(settings);
      //創建實例
      chromeBrowser = new ChromiumWebBrowser("https://www.baidu.com");
    
      // 注冊瀏覽器方法
      chromeBrowser.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
      CefSharpSettings.WcfEnabled = true;
      chromeBrowser.JavascriptObjectRepository.Register("cefCustomObject", new CefCustomObject(chromeBrowser, this), isAsync: false, options: BindingOptions.DefaultBinder);
    
      // 將瀏覽器放入容器中
      this.Controls.Add(chromeBrowser);
      chromeBrowser.Dock = DockStyle.Fill;
    }
    

事先建立一個類,專門用來放需要回調的方法

internal class CefCustomObject
{


  // 瀏覽器對象
  private static ChromiumWebBrowser _instanceBrowser = null;
  // 主窗體
  private static Form1 _instanceMainForm = null;




  public CefCustomObject()
  {

  }


  public CefCustomObject(ChromiumWebBrowser originalBrowser, FrmMain mainForm)
  {
    _instanceBrowser = originalBrowser;
    _instanceMainForm = mainForm;
  }




  public void opencmd()
  {
    MessageBox.Show("更多**好看的內容**和**好玩的案例**請關注**我的微信公眾號: 程序猿知秋");
    ProcessStartInfo start = new ProcessStartInfo("cmd.exe", "/c pause");
    Process.Start(start);
  }

}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 瀏覽器
    +關注

    關注

    1

    文章

    1036

    瀏覽量

    35535
  • CEF
    CEF
    +關注

    關注

    0

    文章

    37

    瀏覽量

    18507
  • 開源項目
    +關注

    關注

    0

    文章

    38

    瀏覽量

    7254
收藏 人收藏

    評論

    明珠百家乐的玩法技巧和规则| 百家乐官网视频下载| 易博全讯网| 百家乐官网视频游戏界面| 澳门百家乐官网网上赌博| 百家乐规则澳门| 百家乐家乐娱乐城| 太阳城代理| 百家乐官网投法| 百家乐赌博博彩赌博网| 大发888赌博网站| 百家乐官网庄家赢钱方法| 百家乐视频表演| 大发888有破解的没| 大发888登录器下载| 庄闲和| 威尼斯人娱乐网代理注| 长江百家乐的玩法技巧和规则| 威尼斯人娱乐网站怎么样| 元朗区| 百家乐官网巴厘岛上海在线| 百家乐真钱在线| 安徽棋牌游戏中心| 百家乐官网规律打法| 沙龙百家乐娱乐平台| 噶尔县| 百家乐技巧娱乐博彩| 皇冠| 百乐坊百家乐游戏| 大发888官方游戏平台| 高档百家乐桌子| bet365体育开户| 玩百家乐官网有几种公式| 百家乐筹码套装| 百家乐技巧网址| 网上百家乐官网好玩吗| 网上百家乐作弊不| 爱拼百家乐的玩法技巧和规则| 百家乐官网梅花图标| 百家乐出千技巧| 大发888官网www.dafa888.com|