我已经调用了带有示例消息和按钮字段的对话框来弹出,但另外我需要在同一个对话框中包含两个文本字段,但我无法做到。
任何人都可以通过合适的答案解决我的问题。
这里是我在电子申请中的示例代码:
dialog.showMessageBox({ message: "Hello There :-)",
buttons: ["OK"] });
答案 0 :(得分:1)
Electron doesn't support prompt dialogs.不要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)
答案 1 :(得分:0)
您需要实现自己的对话框系统,以显示包含两个文本字段的对话框。 Electron中的dialog API不支持该程度的自定义对话框。