亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我無法使用 CefSharp 從 WinForms 的 c# 獲取一些數組

我無法使用 CefSharp 從 WinForms 的 c# 獲取一些數組

C#
UYOU 2023-04-29 16:53:45
我有使用 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 數據。
查看完整描述

1 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

C# 和 CEF 之間的通信是異步的,jSObject.getJSON() 返回對結果的 Promise,而不是結果本身。試試這個 JS 代碼:

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


查看完整回答
反對 回復 2023-04-29
  • 1 回答
  • 0 關注
  • 167 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號