我已经调用了带有示例消息和弹出按钮字段的对话框,但另外我需要在同一个对话框中包含两个文本字段,但我无法做到。
任何人都可以通过合适的答案解决我的问题吗?
这是我在 Electron 应用程序中的示例代码:
dialog.showMessageBox({ message: "Hello There :-)",
buttons: ["OK"] });
Electron 不支持提示对话框。 也不支持 window.prompt。
一种解决方案可能是在渲染器进程中使用 sweetalert 或其他一些 npm 包。如果需要从主进程调用它,可以使用ipcMain将其发送到渲染器。
(未经测试)示例
主要流程:
const { ipcMain } = require('electron')
let promptHandler
ipcMain.on('prompt-handler-registered', event => promptHandler = event.sender)
// Create Promise to make it easier to get the promptHandler
const getPromptHandler = new Promise((resolve) => {
const watcher = setInterval(() => {
// You'll probably want to set a timeout here
if (!promptHandler) return
resolve(promptHandler)
clearInterval(watcher)
}, 200)
})
...
// When you want to prompt the user
getPromptHandler
.then(ph => ph.send('display-prompt', {
title: 'Whats your name?',
...
})
)
渲染器进程:
const { ipcRenderer } = require('electron')
const swal = require('sweetalert2')
function displayPrompt(data) {
swal({
title: data.title,
input: 'text',
})
}
ipcRenderer.send('prompt-handler-registered')
ipcRenderer.on('display-prompt', displayPrompt)
您需要实现自己的对话框系统来显示带有两个文本字段的对话框。 Electron 中的 dialog API 不支持那种程度的自定义对话框。
尝试电子提示!我也遇到了几乎同样的问题