wpf CefSharp 与 js交互
通过 NuGet 获取 CefSharp.WpF 组件。
xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf" //加载
需要把项目的 cpu 设置成 x86 ,Framework4.5
//使用控件
<cefSharp:ChromiumWebBrowser Name="mychrome"></cefSharp:ChromiumWebBrowser>
this.mychrome.MenuHandler = new MenuHandler(); //去掉右键菜单 需要实现 IContextMenuHandler 这个接口
this.mychrome.Address = @"url";
this.mychrome.RegisterJsObject("JsObj", new CallbackObjectForJs(),false); //带false 可以识别大写字母开头的函数或变量
// this.mychrome.RegisterJsObject("JsObj", new CallbackObjectForJs()); //不带 false 不能识别大写字母开头的函数或变量
//注 引用文章 这个也是我开始遇到的问题,无法让 js 调用C#函数
// CefSharp 默认的 RegisterJsObject(没有 camelCaseJavascriptNames 参数),只认小写字母开始的属性、方法名称。
// 使用带 camelCaseJavascriptNames 参数的 RegisterJsObject,传入 false,就能识别大写字母开始的属性、方法名称了。
public class CallbackObjectForJs
{
public string name = "";
public void showTest(string msg)
{
MessageBox.Show(msg);
}
}
js
JsObj.name = "name";
JsObj.showTest("test");
C#调用 js
方式1. ExecuteScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,无返回值。
// xxx为js的方法名称
mychrome.GetBrowser().MainFrame.ExecuteScriptAsync("xxx()");
// 为 js 的 变量jsVar赋值 'abc'
mychrome.GetBrowser().MainFrame.ExecuteScriptAsync("jsVar='abc'");
注:好像是 ExecuteJavaScriptAsync 这个方法
方式2. EvaluateScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,有返回值。
Task<CefSharp.JavascriptResponse> t =
mychrome.GetBrowser().MainFrame.EvaluateScriptAsync("callTest2()");
// 等待js 方法执行完后,获取返回值
t.Wait();
// t.Result 是 CefSharp.JavascriptResponse 对象
// t.Result.Result 是一个 object 对象,来自js的 callTest2() 方法的返回值
if(t.Result.Result != null)
{
MessageBox.Show(t.Result.Result.ToString());
}
wpf CefSharp 与 js交互的更多相关文章
- WPF和WebBrowser JS交互
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- WPF内嵌CEF控件,与JS交互
1)安装cefsharp.winform包 打开VS2017,打开nuget,找到cefsharp.winform,安装 问:为什么wpf程序不使用cefsharp.wpf? 答:因为cefwpf 4 ...
- Winform 通过 WebBrowser 与 JS 交互
Winform 通过 WebBrowser 与 JS 交互 魏刘宏 2019.08.17 之前在使用 Cef (可在 Winform 或 WPF 程序中嵌入 Chrome 内核的网页浏览器的组件)时, ...
- 关于JS交互--调用h5页面,点击页面的按钮,分享到微信朋友圈,好友
关于js交互,在iOS中自然就想到了调用代理方法 另外就是下面的,直接上代码了: 如果你的后台需要知道你的分享结果,那么,就在回调里面调用上传到服务器结果的请求即可
- webView和js交互
与 js 交互 OC 调用 JS // 执行 js - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *title = [web ...
- 李洪强iOS经典面试题147-WebView与JS交互
李洪强iOS经典面试题147-WebView与JS交互 WebView与JS交互 iOS中调用HTML 1. 加载网页 NSURL *url = [[NSBundle mainBundle] UR ...
- WebView---Android与js交互实例
Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true 原文地址:http://blog.csdn.net/it10 ...
- iOS与JS交互实战篇(ObjC版)
前言 ObjectiveC与Js交互是常见的需求,可对于新手或者所谓的高手而言,其实并不是那么简单明了.这里只介绍iOS7.0后出来的JavaScriptCore framework. 关于JavaS ...
- Android WebView加载本地html并实现Java与JS交互
最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...
随机推荐
- Pandoc —— 标记语言转换工具(中文乱码问题)
今次毕业设计,来个逼格高的,用 latex 编写.谁曾想,学院首先要收一份 word 版的.辣么多的 latex 公式如何转呀. Pandoc 是由 John MacFarlane 开发的标记语言转换 ...
- angular表单经验分享
原文 https://www.jianshu.com/p/af359bd04f32 大纲 1.表单的名字不可以和传入的值的名字相同 2.在模板驱动表单的时候要使用angular表单的验证功能,需要将n ...
- 亿格瑞A5-hdmi故障了
http://cn.egreatworld.com/store/product/egreat-a5-4k-uhd-hdr-blu-ray-navigation-hdd-media-player/ a5 ...
- 将String转化为Long,并将Long转化为Date 分类: B1_JAVA 2014-06-30 16:23 1249人阅读 评论(0) 收藏
package org.ljh.test.javaee; import java.text.SimpleDateFormat; import java.util.Date; public class ...
- mysql 悲观锁 的运用
悲观锁: 它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制(也只有数 ...
- win7
http://www.xitongiso.com/?pot http://www.potplayer.org/
- SNMP 配置
http://blog.sina.com.cn/s/blog_593bf1da0100xsvu.html
- 【codeforces 755D】PolandBall and Polygon
time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- PatentTips - Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
BACKGROUND 1. Field The embodiments of the disclosure generally relate to computer clusters, and m ...
- Android 带清除功能的输入框控件EditTextWithDel
记录下一个非常有用的小控件EditTextWithDel.就是在Android系统的输入框右边增加一个小图标.点击小图标能够清除输入框里面的内容,由于Android原生EditText不具备此功能,所 ...