那曲檬骨新材料有限公司

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
收藏 人收藏

    評論

    水富县| 二八杠下载| 百家乐官网注码投注论坛| 3U百家乐娱乐城| 百家乐官网小游戏开发| 20人百家乐官网桌| 波克棋牌官方下载| 风水罗盘24方位| 大关县| 水果机榨汁机| LV百家乐官网赢钱LV| 大发888免费下载| 百家乐网上娱乐城| 找查百家乐官网玩法技巧| 阿合奇县| 百家乐看| 百家乐官网输惨了| 百家乐官网六合彩3535| 大发888老l| 百家乐出千桌| 网上百家乐哪家最好| 美女百家乐官网的玩法技巧和规则| 456棋牌官网| 最好的百家乐游戏平台1| 百家乐官网赌场详解| bet365投注体育比赛合法吗| 百家乐开庄概率| 广州百家乐官网酒店用品制造有限公司 | 星河百家乐官网的玩法技巧和规则| 澳门百家乐官网游戏说明书| 马牌百家乐官网现金网| 百家乐官网| 水果机教程| 水果机8键遥控器| 威尼斯人娱乐城微博| 网上百家乐如何作假| 租nongcun房看风水做生意的| 百家乐官网棋牌正式版| 宾利百家乐官网游戏| 网上赌博| 中华娱乐城|