dialog

dialogモジュールは、ファイルやアラートを開くようなネイティブシステムダイアログを表示するためのAPIを提供します。そのため、ネイティブアプリケーションのようにウェブアプリケーションに同じユーザー体験を提供できます。

複数のファイルやディレクトリを選択するためのダイアログを表示する例です:

var win = ...;  // BrowserWindow in which to show the dialog
const dialog = require('electron').dialog;
console.log(dialog.showOpenDialog({ properties: [ 'openFile', 'openDirectory', 'multiSelections' ]}));

Note for OS X: シートとしてダイアログを表示したい場合、唯一しなければならないことは、browserWindowパラメーターを参照するBrowserWindowを提供することです。

メソッド

dialogモジュールは次のメソッドを持っています:

dialog.showOpenDialog([browserWindow, ]options[, callback])

  • browserWindow BrowserWindow (オプション)
  • options Object
    • title String
    • defaultPath String
    • filters Array
    • properties Array - ダイアログが使うべき機能を含め、openFileopenDirectorymultiSelectionscreateDirectoryを含められます。
  • callback Function (オプション)

成功したら、このメソッドはユーザーが選択したファイルパスの配列を返し、さうでなければ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])

  • browserWindow BrowserWindow (オプション)
  • options Object
    • title String
    • defaultPath String
    • filters Array
  • callback Function (オプション)

成功すると、このメソッドはユーザーが選択したファイルのパスが返され、そうでなければundefinedが返されます。

filtersが表示できるファイル種別配列を指定します。例えば、dialog.showOpenDialogを参照してください。

callbackを通すと、APIは非同期でコールされ、結果はcallback(filename)経由で通します。

dialog.showMessageBox([browserWindow, ]options[, callback])

  • browserWindow BrowserWindow (オプション)
  • options Object
    • type String - "none""info""error""question""warning"を設定できます。Windowsでは、 "icon"オプションを使用してアイコンを設定しない限り、"question"は"info"として同じアイコンを表示します。
    • buttons Array - ボタン用のテキスト配列。
    • defaultId Integer - メッセージボックスを開くとき、既定で選択されるボタン配列でのボタンインデックスです
    • title String - メッセージボックスのタイトルで、いくつかのプラットフォームでは表示されません。
    • message String - メッセージボックスのコンテンツ。
    • detail String - メッセージの外部情報
    • icon NativeImage
    • cancelId Integer - ダイアログのボタンをクリックする代わりにユーザーがダイアログをキャンセルしたときに返す値です。既定では、ラベルの "cancel"や"no"を持つボタンのインデックスまたは、そのようなボタンが無ければ0を返します。OS XやWindowsでは、 すでに指定されているかどうかは関係なく、"Cancel"ボタンのインデックスはいつでも cancelIdが使われます。
    • noLink Boolean - Windowsでは、Electronは、 ("Cancel" または "Yes"のような)共通ボタンであるbuttonsの一つを見つけようとし、ダイアログ内のコマンドリンクとして表示します。この挙動が気に入らない場合は、 noLinktrueに設定できます。
  • callback Function

メッセージボックスを表示し、メッセージボックスが閉じるまでプロセスをブロックします。クリックされたボタンのインデックスを返します。

callbackが通されると、APIは非同期にコールし、結果はcallback(response)経由で通されます。

dialog.showErrorBox(title, content)

エラーメッセージを表示するモデルダイアログを表示します。

appモジュールがreadyイベントを出力する前に、このAPIは安全にコールできます。スタートアップの早い段階でエラーを報告するのに通常は使われます。Linuxで、アプリのreadyイベントの前にコールすると、メッセージは標準エラーに出力され、GUIダイアログは表示されません。