• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

使用C#与CefSharp相互调用所踩过的坑

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

第一个坑:

必须在初始化的时候加上这句,注意:值是false,false,false(重要的事情说3遍),意思是不支持旧版绑定模式。

CefSharpSettings.LegacyJavascriptBindingEnabled = false;

 

第二个坑:

在HTML页面上必须加上这句,其中 bound 是在C#代码里注册对应的name参数。

 

CefSharp.BindObjectAsync('bound').then(function (result) {
    bound.SetAutoResetEvent('ID','text');
});

 

  

 

 

网页调用C#完整的步骤:

第一步:

初始化时加上这句:

CefSharpSettings.LegacyJavascriptBindingEnabled = false;

第二步:

创建调用对象:

public class CallClass
{
    public CallClass()
    {
    }
    public void SetAutoResetEvent(string id,object objResult)
    {

    }
}

注册对象

CallClass cc=new CallClass();
browser.JavascriptObjectRepository.Register("bound", cc, false);

 

第三步:

在HTML添加:

CefSharp.BindObjectAsync('bound');

 

第四步:

在HTML的JS中调用:

bound.SetAutoResetEvent('ID String','ResultString');

 

 C#调用网页完整实例:

var strJs = @"
(function(){
    try{
        alert("执行成功");
    }catch(e){
        alert("error:"+e.description);
    }
    return true;
})();
";
var bResult=browser.EvaluateScriptAsync(strJs).Result.Result;

执行完毕后bResult=true


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#获得当前目录和执行目录的一些方法发布时间:2022-07-10
下一篇:
C#与C/C++网络传输字符串解决方案发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap