javascript - 我无法使用 CefSharp 从 WinForms 的 c# 获取一些数组

标签 javascript c# cefsharp

我有使用 Chromium 的 Win Forms 应用程序。我的目标是获取字符串变量 (json),它是在 C# 领域生成的,用于 javascript 函数。我无法在 javascript-land 获取它。

我在 JSObj.cs 中创建了 mefod getJSON() - 它生成了 json。我从方法中看到了字符串。我在 Form1.cs 注册了 oblect JSObj(这里我有 Chromium)。我用按钮从 html 调用了 JSObj.getJSON(),但我没有在 javascript 代码中调用 json!

<button class="btn btn-info" id="btn3">Test Winform Interaction</button>
$("#btn3").on('click', function () {
            alert(jSObject.getJSON()[0]);
        });
public string getJSON()
        {
            DispHandler hand = new DispHandler(delegate
            {
                string directoryPath = @"C:\";
                List<SObject> sendObjects = new List<SObject>();
                DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
                FileInfo[] filesArray = directoryInfo.GetFiles();
                foreach (var el in filesArray)
                {
                    sendObjects.Add(new SObject(el.Name, directoryPath));
                }
                string json = JsonConvert.SerializeObject(sendObjects);
                return json;
            });
            IAsyncResult resultObj = hand.BeginInvoke(null, null);
            var res = hand.EndInvoke(resultObj);
            return res;
        }
public Form1()
        {
            InitializeComponent();
            InitializeChromium();            
            _browser.RegisterAsyncJsObject("jSObject", new JSObj());
        }

没有错误。我希望在 javascript-land 中获取 json 数据。

最佳答案

C# 和 CEF 之间的通信是异步的,jSObject.getJSON() 返回一个 Promise 到结果,而不是结果本身。试试这个 JS 代码:

$("#btn3").on('click', function () {
    jSObject.getJSON().then(function (r) { alert(r[0]); });
});

关于javascript - 我无法使用 CefSharp 从 WinForms 的 c# 获取一些数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718713/

相关文章:

c# - Math.Sinh() 在 C# 中返回不同的值

javascript - Tab 进行验证码

javascript - 如何在 cefsharp 中捕获/监听 javascript 函数或事件

javascript - ES6 reduce 没有按预期工作

javascript - 使用 merge-images.js 合并图像 1) 未正确放置,2) 在 chrome 上出现 "tainted"错误

javascript - 在初始条件之外迭代 for 循环

c# - 在 Cefsharp 浏览器中避免 Js Alert 问题

javascript - 为什么此 Javascript 行只包含函数名称和函数调用?

c# - DEBUG 与 RELEASE 和分发程序集

c# - 最近的 Twitter API 1.1 的 Twitterizer 版本