如何在Electron.net中接收多个参数

问题描述 投票:0回答:1

我想接收带有多个参数的ipcRenderer.send消息。 JavaScript看起来像这样:

document.getElementById("btn-submit").addEventListener("click", () => {
                ipcRenderer.send("btn-submit", [document.getElementById("uid").nodeValue, document.getElementById("pw").nodeValue]);
            });

当我尝试创建位于控制器内的侦听函数时,当我将args引用为数组时会收到语法错误,如下所示:

Electron.IpcMain.On("btn-submit", async (args) =>
                {
                    MessageBoxOptions options = new MessageBoxOptions(String.Format("UID: {0} PW:{1}",args[0],args[1]))
                    {
                        Type = MessageBoxType.info,
                        Title = "Information",
                        Buttons = new string[] { "Yes", "No" }
                    };

                    var result = await Electron.Dialog.ShowMessageBoxAsync(options);
                });

如何在ipcMain侦听方法中接收从ipcRenderer.send方法传递的多个参数?

javascript c# electron electron.net
1个回答
0
投票

尽管.On(...)取了Action<object>,但是当有多个参数时,您可以将object强制转换为List<object>,这将解决语法问题:

Electron.IpcMain.On("btn-submit", async (args) =>
                {
                    var listArgs = (List<object>)args;
                    MessageBoxOptions options = new MessageBoxOptions(String.Format("UID: {0} PW:{1}",listArgs[0],listArgs[1]))
                    {
                        Type = MessageBoxType.info,
                        Title = "Information",
                        Buttons = new string[] { "Yes", "No" }
                    };

                    var result = await Electron.Dialog.ShowMessageBoxAsync(options);
                });
© www.soinside.com 2019 - 2024. All rights reserved.