最近做一个项目练手,需要多人配合,前端有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

Cefsharp入坑实操相关推荐

  1. git原理详解与实操指南_基于dockercompose的Gitlab CI/CD实践amp;排坑指南

    长话短说 经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解. 看过博客园<docker ...

  2. ​影视剪辑如何月入1万+?大神教你影视剪辑实操全流程!【覃小龙课堂】

    您好,我是您的老朋友:覃小龙,您可以叫我覃总.我们今天给您带来的主题是: 影视剪辑如何月入1万+?大神教你影视剪辑实操全流程! 影视剪辑2个账号,月1万多!教你从0做起 新手刚开始做影视剪辑一般会遇到 ...

  3. 硬盘损坏及Ubuntu18.04双系统重装记录(实操不踩坑安装)

    前言 虽然自己的联想拯救者使用时间较长,但从未产生故障,因此备份意识淡薄.然而所装机械硬盘在正常使用过程中突然损坏,造成很大损失. 建议大家,对于重要资料一定要规划好备份工作!!! 此次故障具体产生问 ...

  4. 小白也能接广告赚钱,实操月入3000+项目详解

    小白也能接广告赚钱,实操月入3000+项目详解 大家好,我是独孤思维.今天是原创日更134篇. 01 微头条接广告 自从上次分享了微头条的搬运项目,很多粉丝朋友已经开始实操了,有的甚至两天都涨粉破百, ...

  5. 微生物组入门必读+宏基因组实操课程=新老司机赶快上车

    声明:本文转载自宏基因组公众号,原作者朱微金,己获作者授权. 写在前面 作为纯wet遗传学博士,转行微生物组领域已经有两年.目睹微生物组文章中分析所占比重之大,让我痛下决心苦学dry技能.目前感觉对宏 ...

  6. 极简数据分析实操指南(下)

    科学方法必须包括:问题陈述.产生假设.收集数据.分析数据,然后获取结果并采取行动.......当你使用科学方法做事情时,你会更快取得成功. -- Bob Hayes 博士,百老汇商业总裁 前面我们已经 ...

  7. 预训练永不止步,游戏问答语言模型实操

    ©PaperWeekly 原创 · 作者|程任清.刘世兴 单位|腾讯游戏知几AI团队 研究方向|自然语言处理 简介 深度学习时代,为了充分训练深层模型参数并防止过拟合,通常需要更多标注数据喂养,在 N ...

  8. stm32移植paho_如何在STM32上移植Linux?超详细的实操经验分享

    原标题:如何在STM32上移植Linux?超详细的实操经验分享 刚从硬件跳槽为嵌软时,没有任何一丝的准备.一入职,领导就交代了一项特难的任务--在stm32上移植linux! 瞬间我就懵了,没办法硬着 ...

  9. [转载]你们要的GIF动图制作全攻略!看完就会做!(实操教程)

    非常实用呀 原文地址:你们要的GIF动图制作全攻略!看完就会做!(实操教程)作者:木木老贼 来源:文案匠(ID:sun-work) 作者:一木(授权转载,如需转载请联系文案匠) 文章配图的GIF动图怎 ...

  10. 72 个网络应用安全实操要点,全方位保护你的 Web 应用

    原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...

最新文章

  1. Nhibernate使用动态Expression的问题解决
  2. php配置文件修改数据库上传,请问php.ini上传文件大小限制配置修改路径在哪里?是在数据库哪里吗?表头是?...
  3. mysql优化学习(二)
  4. Mysql对事务的支持
  5. 各种编程语言的按钮输入框
  6. networkx 标签_networkx绘制BA无标度网络
  7. 计算机软件选修课选什么好,大学值得选的“选修课”,一点不比专业课差,能选上最好认真听...
  8. STM32F407+CubeMX-使用TIM计算编码器的脉冲总数,并计算脉冲方向
  9. linux修改私钥的密码,linux使用密钥+密码登录ssh(centos7)
  10. AcWing1081.度的数量(数位DP)题解
  11. [hashmap|空间换时间] leetcode 1 两数之和
  12. 页面库无法捕获到Added事件?
  13. 四叶草启动linux黑屏,四叶草剧场黑屏进不去解决方法一览
  14. python爬取flash数据_爬取flash数据
  15. 计算机网络监控,计算机网络连接监控系统.doc
  16. 怎么打开和修改dll文件的?如何调用和编辑?
  17. 类似于android短信校验码的demo
  18. Python.习题六 字典与集合(上)
  19. java程序设计特点_Java编程语言的特点
  20. promise和async用法及区别(详解)

热门文章

  1. Swift 5 Dictionary用法大全
  2. NumPy库---拷贝
  3. 从客户端登陆服务器的配置文件,从客户端登陆服务器的配置
  4. 113. 路径总和 II
  5. nginx 带宽_你知道服务器的带宽怎样设置吗?
  6. 均方根误差RMSE 均方根值(RMS)+ 均方根误差(RMSE)+标准差(Standard Deviation)
  7. Socket通过读取数据阻塞的解决方案
  8. Raki的读paper小记:GloVe: Global Vectors for Word Representation
  9. Golang中对new和make的理解
  10. Docker在centos下安装以及常见错误解决