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)