zoukankan      html  css  js  c++  java
  • 使用C#与CefSharp相互调用所踩过的坑

    第一个坑:

    必须在初始化的时候加上这句,注意:值是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

  • 相关阅读:
    O-C相关-06:对象与对象的关系
    O-C相关05:方法的封装.
    O-C相关04:类方法的概述与定义和调用
    Objective-C发展历史
    O-C相关-03:面向对象概念的具体介绍
    OC相关-02:oc和c的基本差异
    0-C相关01:NSlog函数介绍。
    鞭辟入里
    objective-c中字符串长度计算
    OC多文件开发介绍
  • 原文地址:https://www.cnblogs.com/networkpilot/p/12561136.html
Copyright © 2011-2022 走看看