如何在 Electron.net 中接收多个参数
How to receive multiple arguments in Electron.net
我想接收带有多个参数的 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方法传来的多个参数?
尽管 .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);
});
我想接收带有多个参数的 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方法传来的多个参数?
尽管 .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);
});