2017-10-24 1 views
1

サンプルメッセージとボタンフィールドを含むダイアログをポップアップに呼び出しましたが、同じダイアログボックスに2つのテキストフィールドを含める必要があります。2つのtextfiledと1つのボタンを電子メールに追加する方法ダイアログボックス

誰でも私の問題を適切な答えで解決できますか?

ここで電子アプリケーションでの私のサンプルコード:

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?', 
     ... 
    }) 
) 

レンダラプロセス:あなたは2つのテキストフィールドを持つダイアログを表示するために、独自の対話システムを実装する必要があり

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は、その程度のカスタマイズダイアログをサポートしていません。

関連する問題