• 大小: 24.77MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-23
  • 语言: C#
  • 标签: Xilium  CefGlue  C#  

资源简介

Xilium.Cefglue JS与C#相互调用Demo, 详细注释Xilium.Cefglue JS与C#相互调用Demo

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace TestJsCall
{
    public class CefjavascriptEx
    {
        /// 
        /// 利用反射,将对象的属性、方法映射成注册JS方法的脚本,
        /// object obj 需要被映射的对象,
        /// String jsName JS调用的对象名称,
        /// return String 返回注册JS的脚本
        /// 

        /// 需要被映射的对象
        /// JS调用的对象名称
        /// 返回注册JS的脚本
        public static String CreateJsCodeByobject(object obj String jsName)
        {
            String jsCode = “function “ + jsName + @“() {}
                if (!“ + jsName + “) “ + jsName + @“ = {};
                (function() {“;

            try
            {
                Type objType = obj.GetType();
                MethodInfo[] methods = objType.GetMethods();
                String pm = ““ fname = ““ func = ““;
                for (int i = 0 j = methods.Length; i < j; i++)
                {
                    pm = ““;
                    fname = methods[i].Name;
                    ParameterInfo[] param = methods[i].GetParameters();
                    for (int k = 0 x = param.Length; k < x; k++)
                    {
                        pm += “arg“ + k;
                        if (k < (x - 1))
                        {
                            pm += “ “;
                        }
                    } 
                    func = jsName + “.“ + fname + “ = function(“ + pm + @“) {
                        native function “ + fname + “(“ + pm + @“);
                        return “ + fname + “(“ + pm + @“);
                    };“;
                    
                    jsCode += func;
                }
               
            }catch(Exception e){
                System.Windows.Forms.MessageBox.Show(e.Message);
            }            

            jsCode += @“})();“;
            return jsCode;
        }
        
    }


    /// 
    /// 另外一种组装JS方法
    /// //第二种方法
    //  使用参考http://blog.csdn.net/nishiayan/article/details/77941471
    /// 

    public class GeneratejavascriptFull
    {
        string _extensionName = string.Empty;
        string _functionName = string.Empty;
        Dictionary _methodName = new Dictionary();

        //
        Dictionary _getterPropertyName = new Dictionary();

        // 保存setter 名称 和参数。 与 _setterPropertyArgs 成对出现。
        Dictionary _setterPropertyName = new Dictionary();
        Dictionary _setterPropertyArgs = new Dictionary();

        //自定义javascript代码
        List _customjavascript = new List();

        /// 
        /// 
        /// 

        /// 
     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-11-21 12:16  TestJsCall\
     目录           0  2017-11-21 12:16  TestJsCall\.vs\
     目录           0  2017-11-21 12:16  TestJsCall\.vs\TestJsCall\
     目录           0  2017-11-21 12:16  TestJsCall\.vs\TestJsCall\v14\
     文件       14848  2015-03-14 00:52  TestJsCall\.vs\TestJsCall\v14\.suo
     目录           0  2017-11-21 12:34  TestJsCall\TestJsCall\
     文件         999  2015-03-14 00:16  TestJsCall\TestJsCall.sln
     文件       14848  2015-03-14 00:52  TestJsCall\TestJsCall.v12.suo
     文件         187  2015-03-14 00:16  TestJsCall\TestJsCall\App.config
     目录           0  2015-03-14 00:16  TestJsCall\TestJsCall\bin\
     目录           0  2017-11-21 12:34  TestJsCall\TestJsCall\bin\Debug\
     文件     2626380  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\cef.pak
     文件     2106216  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\d3dcompiler_43.dll
     文件     3231696  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\d3dcompiler_46.dll
     文件     3222691  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\devtools_resources.pak
     文件      873472  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\ffmpegsumo.dll
     文件      114688  2012-08-27 17:26  TestJsCall\TestJsCall\bin\Debug\ICSharpCode.SharpZipLib.dll
     文件     9956864  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\icudt.dll
     文件        1179  2015-03-14 00:50  TestJsCall\TestJsCall\bin\Debug\index.html
     文件    38703104  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\libcef.dll
     文件      102400  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\libEGL.dll
     文件      880128  2013-10-31 20:37  TestJsCall\TestJsCall\bin\Debug\libGLESv2.dll
     目录           0  2015-03-14 00:22  TestJsCall\TestJsCall\bin\Debug\locales\
     文件        6371  2013-10-31 19:24  TestJsCall\TestJsCall\bin\Debug\locales\en-US.pak
     文件        6407  2013-10-31 19:24  TestJsCall\TestJsCall\bin\Debug\locales\zh-CN.pak
     文件       18432  2017-11-21 12:34  TestJsCall\TestJsCall\bin\Debug\TestJsCall.exe
     文件         187  2015-03-14 00:16  TestJsCall\TestJsCall\bin\Debug\TestJsCall.exe.config
     文件       42496  2017-11-21 12:34  TestJsCall\TestJsCall\bin\Debug\TestJsCall.pdb
     文件       24224  2015-03-14 00:20  TestJsCall\TestJsCall\bin\Debug\TestJsCall.vshost.exe
     文件         187  2015-03-14 00:16  TestJsCall\TestJsCall\bin\Debug\TestJsCall.vshost.exe.config
     文件         490  2013-06-18 20:28  TestJsCall\TestJsCall\bin\Debug\TestJsCall.vshost.exe.manifest
............此处省略34个文件信息

评论

共有 条评论