使用CEfSharp之旅 前后端訪問代碼


 

1.引入CEfSharp newget包

2.把平台配置為X86或X64,any cpu不支持此控件

3.引入命名空間

using CefSharp;
using CefSharp.WinForms;

4.初始化

  Cef.Initialize(new CefSettings() { });
            browser = new ChromiumWebBrowser("http://192.168.2.247:8083/Demo.html");
           
            
            this.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;
            browser.IsBrowserInitializedChanged += Browser_IsBrowserInitializedChanged; ;
            browser.FrameLoadEnd += Browser_FrameLoadEnd;

5.后台訪問前台代碼

            StringBuilder sb = new StringBuilder();//這里為js代碼
            sb.Append("  document.getElementById('drawlinetext').value = 'longlatstart:114.009162902832,22.9938430786133;longlatend:114.009162902832,22.9938411712646;color:lightgreen;message:<div>車長度為0米</br>距離南橋257.33</br>距離北橋256.92</div>'; var _elm = document.getElementById('drawline'); ; var _evt = document.createEvent('MouseEvents'); _evt.initEvent('click', true, true); _elm.dispatchEvent(_evt); ");
            browser.GetMainFrame().ExecuteJavaScriptAsync(sb.ToString());
            browser.ExecuteScriptAsync("");//有時不好用不知道為啥

6.前台訪問后台代碼

(1)首先要設計一個前后台訪問的通用類

  public class BoundObject
    {
        public string MyProperty { get; set; }
        public void MyMethod(string ShowNickName, string html)
        {
            try
            {
                Console.WriteLine("我來響應前台的的事件");
            }
            catch (Exception ex)
            {

            }
        }

    }

(2)把這個類作為中間媒介,前后端代碼兩邊注冊

前端

 bound.myMethod(devicename, lng,lat);

后端

  CefSharpSettings.LegacyJavascriptBindingEnabled = true;//設置允許使用js
  browser.RegisterJsObject("bound", new BoundObject());//bound必須為小寫,bound相當於句柄,個人理解

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM