2017-10-24 17 views
1

샘플 메시지와 버튼 필드를 팝업으로 호출했지만 추가로 두 개의 텍스트 필드를 같은 대화 상자에 포함해야하지만 만들 수는 없습니다.두 개의 textfiled와 하나의 버튼을 전자 메일에 추가하는 방법 대화 상자

누군가 내 문제를 적절한 대답으로 해결할 수 있습니까?

여기에 전자 응용 프로그램에서 내 샘플 코드 :

dialog.showMessageBox({ message: "Hello There :-)", 
     buttons: ["OK"] }); 

답변

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) 
0

. 전자의 dialog API은 그 정도의 맞춤 설정 대화 상자를 지원하지 않습니다.