Cefsharp入坑实操

最近做一个项目练手,需要多人配合,前端有js网页制作和美工人员,我只写过c#后台编程,没做过wpf界面,于是想采用嵌入式的网页开发本地程序,就入了cefsharp这个坑。目前遇到的问题一一得到解决。

1、c#暴露接口给js

   CefSharpSettings.LegacyJavascriptBindingEnabled = true;
            ChromiumWebBrowser wb = new ChromiumWebBrowser
            {
               // Address = @"D:\RRR\html\html\menu.html"
                Address = "http://www.baidu.com"

            };
            //BindingOptions bo = new BindingOptions();
            //bo.CamelCaseJavascriptNames = false; 
            wb.RegisterJsObject("bound", new BLL.BoundObject());
            MainGrid.Children.Add(wb);

2.c#实现功能,并调用页面js函数


1
/// <summary> 2 /// 云服务器是否连接 3 /// </summary> 4 public void cloudservice(IJavascriptCallback javascriptCallback) 5 { 6 const int taskDelay = 3000; 7 8 string url = System.Configuration.ConfigurationManager.AppSettings["ConnectionIP"]; 9 string url2 = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; 10 string[] urls = { url , url2}; 11 12 bool status = false; 13 try 14 { 15 status = BLL.CheckNetState.CheckServeStatus(urls); 16 } 17 catch (Exception ex) 18 { 19 } 20 Task.Run(async () => 21 { 22 await Task.Delay(taskDelay); 23 24 await javascriptCallback.ExecuteAsync(status); 25 }); 26 27 }

3.页面js函数测试代码

 <script type="text/javascript">
        function callback(cloudservice) {
          //  var result = document.getElementById('cbresult');
         //   result.innerText += "Callback: " + cloudservice + "" + Date();
            var online = "../../image/1.png";
            var local = "../../image/1-1.png";
           // var cloudservice = true;
            if (cloudservice == true) {
                document.getElementById("imageId").src = online;
            } else {
                document.getElementById("imageId").src = local;
            }
        }

        function testCallback() {
            bound.cloudservice(callback);
          //  var result = document.getElementById('cbresult');
        //   result.innerText = "The function has returned: " + Date() + "\n";
        }
    </script> 
<button οnclick="testCallback()">Test Callback</button>

上面三步实现了后台和js的通讯接口,目前就是对于数据传输过程的延迟没有深入测试,看是否能满足应用要求。

转载于:https://www.cnblogs.com/talentsnail/p/9627934.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值