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
Cefsharp入坑实操相关推荐
- git原理详解与实操指南_基于dockercompose的Gitlab CI/CD实践amp;排坑指南
长话短说 经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解. 看过博客园<docker ...
- 影视剪辑如何月入1万+?大神教你影视剪辑实操全流程!【覃小龙课堂】
您好,我是您的老朋友:覃小龙,您可以叫我覃总.我们今天给您带来的主题是: 影视剪辑如何月入1万+?大神教你影视剪辑实操全流程! 影视剪辑2个账号,月1万多!教你从0做起 新手刚开始做影视剪辑一般会遇到 ...
- 硬盘损坏及Ubuntu18.04双系统重装记录(实操不踩坑安装)
前言 虽然自己的联想拯救者使用时间较长,但从未产生故障,因此备份意识淡薄.然而所装机械硬盘在正常使用过程中突然损坏,造成很大损失. 建议大家,对于重要资料一定要规划好备份工作!!! 此次故障具体产生问 ...
- 小白也能接广告赚钱,实操月入3000+项目详解
小白也能接广告赚钱,实操月入3000+项目详解 大家好,我是独孤思维.今天是原创日更134篇. 01 微头条接广告 自从上次分享了微头条的搬运项目,很多粉丝朋友已经开始实操了,有的甚至两天都涨粉破百, ...
- 微生物组入门必读+宏基因组实操课程=新老司机赶快上车
声明:本文转载自宏基因组公众号,原作者朱微金,己获作者授权. 写在前面 作为纯wet遗传学博士,转行微生物组领域已经有两年.目睹微生物组文章中分析所占比重之大,让我痛下决心苦学dry技能.目前感觉对宏 ...
- 极简数据分析实操指南(下)
科学方法必须包括:问题陈述.产生假设.收集数据.分析数据,然后获取结果并采取行动.......当你使用科学方法做事情时,你会更快取得成功. -- Bob Hayes 博士,百老汇商业总裁 前面我们已经 ...
- 预训练永不止步,游戏问答语言模型实操
©PaperWeekly 原创 · 作者|程任清.刘世兴 单位|腾讯游戏知几AI团队 研究方向|自然语言处理 简介 深度学习时代,为了充分训练深层模型参数并防止过拟合,通常需要更多标注数据喂养,在 N ...
- stm32移植paho_如何在STM32上移植Linux?超详细的实操经验分享
原标题:如何在STM32上移植Linux?超详细的实操经验分享 刚从硬件跳槽为嵌软时,没有任何一丝的准备.一入职,领导就交代了一项特难的任务--在stm32上移植linux! 瞬间我就懵了,没办法硬着 ...
- [转载]你们要的GIF动图制作全攻略!看完就会做!(实操教程)
非常实用呀 原文地址:你们要的GIF动图制作全攻略!看完就会做!(实操教程)作者:木木老贼 来源:文案匠(ID:sun-work) 作者:一木(授权转载,如需转载请联系文案匠) 文章配图的GIF动图怎 ...
- 72 个网络应用安全实操要点,全方位保护你的 Web 应用
原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...
最新文章
- Nhibernate使用动态Expression的问题解决
- php配置文件修改数据库上传,请问php.ini上传文件大小限制配置修改路径在哪里?是在数据库哪里吗?表头是?...
- mysql优化学习(二)
- Mysql对事务的支持
- 各种编程语言的按钮输入框
- networkx 标签_networkx绘制BA无标度网络
- 计算机软件选修课选什么好,大学值得选的“选修课”,一点不比专业课差,能选上最好认真听...
- STM32F407+CubeMX-使用TIM计算编码器的脉冲总数,并计算脉冲方向
- linux修改私钥的密码,linux使用密钥+密码登录ssh(centos7)
- AcWing1081.度的数量(数位DP)题解
- [hashmap|空间换时间] leetcode 1 两数之和
- 页面库无法捕获到Added事件?
- 四叶草启动linux黑屏,四叶草剧场黑屏进不去解决方法一览
- python爬取flash数据_爬取flash数据
- 计算机网络监控,计算机网络连接监控系统.doc
- 怎么打开和修改dll文件的?如何调用和编辑?
- 类似于android短信校验码的demo
- Python.习题六 字典与集合(上)
- java程序设计特点_Java编程语言的特点
- promise和async用法及区别(详解)
热门文章
- Swift 5 Dictionary用法大全
- NumPy库---拷贝
- 从客户端登陆服务器的配置文件,从客户端登陆服务器的配置
- 113. 路径总和 II
- nginx 带宽_你知道服务器的带宽怎样设置吗?
- 均方根误差RMSE 均方根值(RMS)+ 均方根误差(RMSE)+标准差(Standard Deviation)
- Socket通过读取数据阻塞的解决方案
- Raki的读paper小记:GloVe: Global Vectors for Word Representation
- Golang中对new和make的理解
- Docker在centos下安装以及常见错误解决