C#處理JavaScript引擎


概述

  通常JavaScript在Web瀏覽器執行展現特定效果,C#也可以后台執行JavaScript里面方法;C#通常調用第三方DLL方式:MsieJavaScriptEngine或者JavaScriptEngineSwitcher。具體使用列舉如下;

MsieJavaScriptEngine使用

  Nuget里面,添加MsieJavaScriptEngine的類庫;由於MsieJavaScriptEngine不支持.NET Core下Linux的部署運行,代碼使用方式如下:

public static string Ck3(string cert, string ts, string nullPara, string page, string token)
        {
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
            using (var jsEngine = new MsieJsEngine())
            {
                jsEngine.ExecuteFile(string.Format(@"{0}/Scripts/myscript.js", basePath));
                string[] arr = new string[] { cert, ts, nullPara, page, token };
                jsEngine.Execute("var $CFMethod=$.ck;");
                var publickey = jsEngine.CallFunction("$CFMethod", arr);
                return publickey.ToString();
            }
        }

 

JavaScriptEngineSwitcher的使用

       Nuget里面,添加JavaScriptEngineSwitcher的類庫;由於JavaScriptEngineSwitcher支持.NET Core下Linux和Win的部署運行,另外還需要安裝的類庫

JavaScriptEngineSwitcher.ChakraCore.Native.linux-x64  ///針對Linux-x64環境下組件;

JavaScriptEngineSwitcher.ChakraCore.Native.win-x64   //針對Wind-x64環境下組件;

JavaScriptEngineSwitcher.ChakraCore.Native.win-x32   //針對Wind-x32環境下組件;

代碼使用方式如下:

 public static string Ck(string cert, string ts, string nullPara, string page, string token)
        {
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
            IJsEngineSwitcher engineSwitcher = JsEngineSwitcher.Current;
            engineSwitcher.EngineFactories.Add(new ChakraCoreJsEngineFactory());
            engineSwitcher.DefaultEngineName = ChakraCoreJsEngine.EngineName;
            using (IJsEngine engine = JsEngineSwitcher.Current.CreateDefaultEngine())
            {
                engine.ExecuteFile(string.Format(@"{0}/Scripts/myscipt.js", basePath));
                string[] arr = new string[] { cert, ts, nullPara, page, token };
                engine.Execute("var $CFMethod=$.ck;");
                var publickey = engine.CallFunction("$CFMethod", arr);
                return publickey.ToString();
            }                        
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM