dialog
dialogモジュールは、ファイルやアラートを開くようなネイティブシステムダイアログを表示するためのAPIを提供します。そのため、ネイティブアプリケーションのようにウェブアプリケーションに同じユーザー体験を提供できます。
複数のファイルやディレクトリを選択するためのダイアログを表示する例です:
const {dialog} = require('electron')
console.log(dialog.showOpenDialog({properties: ['openFile', 'openDirectory', 'multiSelections']}))
Note for macOS: シートとしてダイアログを表示したい場合、唯一しなければならないことは、browserWindowパラメーターを参照するBrowserWindowを提供することです。
メソッド
dialogモジュールは次のメソッドを持っています:
dialog.showOpenDialog([browserWindow, ]options[, callback])
browserWindowBrowserWindow (オプション)optionsObjecttitleStringdefaultPathStringfiltersArraypropertiesArray - ダイアログが使うべき機能を含め、openFileとopenDirectory、multiSelections、createDirectoryを含められます。
callbackFunction (オプション)
成功したら、このメソッドはユーザーが選択したファイルパスの配列を返し、さうでなければundefinedを返します。
ユーザーが選択できる種類を制限したいときに、filtersで表示したり選択できるファイル種別の配列を指定します。
{
  filters: [
    { name: 'Images', extensions: ['jpg', 'png', 'gif'] },
    { name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
    { name: 'Custom File Type', extensions: ['as'] },
    { name: 'All Files', extensions: ['*'] }
  ]
}
extensions配列は、ワイルドカードやドットなしで拡張子を指定すべきです(例えば、'png'は良いですが、'.png' と '*.png'はダメです)。すべてのファイルを表示するために、'*'ワイルドカードを使用します(それいがいのワイルドカードはサポートしていません)。
callbackを通すと、APIは非同期に読み出し、結果はcallback(filenames)経由で通します。
Note: WindowsとLinuxでは、オープンダイアログがファイル選択とディレクトリ選択の両方を選択することはできません。プラットフォーム上で propertiesに['openFile', 'openDirectory']を設定すると、ディレクトリ選択が表示されます。
dialog.showSaveDialog([browserWindow, ]options[, callback])
browserWindowBrowserWindow (オプション)optionsObjecttitleStringdefaultPathStringfiltersArray
callbackFunction (オプション)
成功すると、このメソッドはユーザーが選択したファイルのパスが返され、そうでなければundefinedが返されます。
filtersが表示できるファイル種別配列を指定します。例えば、dialog.showOpenDialogを参照してください。
callbackを通すと、APIは非同期でコールされ、結果はcallback(filename)経由で通します。
dialog.showMessageBox([browserWindow, ]options[, callback])
browserWindowBrowserWindow (オプション)optionsObjecttypeString -"none"と"info"、"error"、"question"、"warning"を設定できます。Windowsでは、 "icon"オプションを使用してアイコンを設定しない限り、"question"は"info"として同じアイコンを表示します。buttonsArray - ボタン用のテキスト配列。defaultIdInteger - メッセージボックスを開くとき、既定で選択されるボタン配列でのボタンインデックスですtitleString - メッセージボックスのタイトルで、いくつかのプラットフォームでは表示されません。messageString - メッセージボックスのコンテンツ。detailString - メッセージの外部情報iconNativeImagecancelIdInteger - ダイアログのボタンをクリックする代わりにユーザーがダイアログをキャンセルしたときに返す値です。既定では、ラベルの "cancel"や"no"を持つボタンのインデックスまたは、そのようなボタンが無ければ0を返します。macOSやWindowsでは、 すでに指定されているかどうかは関係なく、"Cancel"ボタンのインデックスはいつでもcancelIdが使われます。noLinkBoolean - Windowsでは、Electronは、 ("Cancel" または "Yes"のような)共通ボタンであるbuttonsの一つを見つけようとし、ダイアログ内のコマンドリンクとして表示します。この挙動が気に入らない場合は、noLinkをtrueに設定できます。
callbackFunction
メッセージボックスを表示し、メッセージボックスが閉じるまでプロセスをブロックします。クリックされたボタンのインデックスを返します。
callbackが通されると、APIは非同期にコールし、結果はcallback(response)経由で通されます。
dialog.showErrorBox(title, content)
エラーメッセージを表示するモデルダイアログを表示します。
 appモジュールがreadyイベントを出力する前に、このAPIは安全にコールできます。スタートアップの早い段階でエラーを報告するのに通常は使われます。Linuxで、アプリのreadyイベントの前にコールすると、メッセージは標準エラーに出力され、GUIダイアログは表示されません。