The note about cancelId not working on windows is not valid. Tried on Windows 7 and Windows 10 and it works in both cases (tested on electron 1.8.7).
11 KiB
dialog
Display native system dialogs for opening and saving files, alerting, etc.
Process: Main
An example of showing a dialog to select multiple files and directories:
const {dialog} = require('electron')
console.log(dialog.showOpenDialog({properties: ['openFile', 'openDirectory', 'multiSelections']}))
The Dialog is opened from Electron's main thread. If you want to use the dialog object from a renderer process, remember to access it using the remote:
const {dialog} = require('electron').remote
console.log(dialog)
Methods
The dialog module has the following methods:
dialog.showOpenDialog([browserWindow, ]options[, callback])
browserWindowBrowserWindow (optional)optionsObjecttitleString (optional)defaultPathString (optional)buttonLabelString (optional) - Custom label for the confirmation button, when left empty the default label will be used.filtersFileFilter[] (optional)propertiesString[] (optional) - Contains which features the dialog should use. The following values are supported:openFile- Allow files to be selected.openDirectory- Allow directories to be selected.multiSelections- Allow multiple paths to be selected.showHiddenFiles- Show hidden files in dialog.createDirectorymacOS - Allow creating new directories from dialog.promptToCreateWindows - Prompt for creation if the file path entered in the dialog does not exist. This does not actually create the file at the path but allows non-existent paths to be returned that should be created by the application.noResolveAliasesmacOS - Disable the automatic alias (symlink) path resolution. Selected aliases will now return the alias path instead of their target path.treatPackageAsDirectorymacOS - Treat packages, such as.appfolders, as a directory instead of a file.
messageString (optional) macOS - Message to display above input boxes.securityScopedBookmarksBoolean (optional) masOS mas - Create security scoped bookmarks when packaged for the Mac App Store.
callbackFunction (optional)filePathsString[] - An array of file paths chosen by the userbookmarksString[] macOS mas - An array matching thefilePathsarray of base64 encoded strings which contains security scoped bookmark data.securityScopedBookmarksmust be enabled for this to be populated.
Returns String[], an array of file paths chosen by the user,
if the callback is provided it returns undefined.
The browserWindow argument allows the dialog to attach itself to a parent window, making it modal.
The filters specifies an array of file types that can be displayed or
selected when you want to limit the user to a specific type. For example:
{
filters: [
{name: 'Images', extensions: ['jpg', 'png', 'gif']},
{name: 'Movies', extensions: ['mkv', 'avi', 'mp4']},
{name: 'Custom File Type', extensions: ['as']},
{name: 'All Files', extensions: ['*']}
]
}
The extensions array should contain extensions without wildcards or dots (e.g.
'png' is good but '.png' and '*.png' are bad). To show all files, use the
'*' wildcard (no other wildcard is supported).
If a callback is passed, the API call will be asynchronous and the result
will be passed via callback(filenames).
Note: On Windows and Linux an open dialog can not be both a file selector
and a directory selector, so if you set properties to
['openFile', 'openDirectory'] on these platforms, a directory selector will be
shown.
dialog.showSaveDialog([browserWindow, ]options[, callback])
browserWindowBrowserWindow (optional)optionsObjecttitleString (optional)defaultPathString (optional) - Absolute directory path, absolute file path, or file name to use by default.buttonLabelString (optional) - Custom label for the confirmation button, when left empty the default label will be used.filtersFileFilter[] (optional)messageString (optional) macOS - Message to display above text fields.nameFieldLabelString (optional) macOS - Custom label for the text displayed in front of the filename text field.showsTagFieldBoolean (optional) macOS - Show the tags input box, defaults totrue.securityScopedBookmarksBoolean (optional) masOS mas - Create a security scoped bookmark when packaged for the Mac App Store. If this option is enabled and the file doesn't already exist a blank file will be created at the chosen path.
callbackFunction (optional)filenameStringbookmarkString macOS mas - Base64 encoded string which contains the security scoped bookmark data for the saved file.securityScopedBookmarksmust be enabled for this to be present.
Returns String, the path of the file chosen by the user,
if a callback is provided it returns undefined.
The browserWindow argument allows the dialog to attach itself to a parent window, making it modal.
The filters specifies an array of file types that can be displayed, see
dialog.showOpenDialog for an example.
If a callback is passed, the API call will be asynchronous and the result
will be passed via callback(filename).
dialog.showMessageBox([browserWindow, ]options[, callback])
browserWindowBrowserWindow (optional)optionsObjecttypeString (optional) - Can be"none","info","error","question"or"warning". On Windows,"question"displays the same icon as"info", unless you set an icon using the"icon"option. On macOS, both"warning"and"error"display the same warning icon.buttonsString[] (optional) - Array of texts for buttons. On Windows, an empty array will result in one button labeled "OK".defaultIdInteger (optional) - Index of the button in the buttons array which will be selected by default when the message box opens.titleString (optional) - Title of the message box, some platforms will not show it.messageString - Content of the message box.detailString (optional) - Extra information of the message.checkboxLabelString (optional) - If provided, the message box will include a checkbox with the given label. The checkbox state can be inspected only when usingcallback.checkboxCheckedBoolean (optional) - Initial checked state of the checkbox.falseby default.iconNativeImage (optional)cancelIdInteger (optional) - The index of the button to be used to cancel the dialog, via theEsckey. By default this is assigned to the first button with "cancel" or "no" as the label. If no such labeled buttons exist and this option is not set,0will be used as the return value or callback response.noLinkBoolean (optional) - On Windows Electron will try to figure out which one of thebuttonsare common buttons (like "Cancel" or "Yes"), and show the others as command links in the dialog. This can make the dialog appear in the style of modern Windows apps. If you don't like this behavior, you can setnoLinktotrue.normalizeAccessKeysBoolean (optional) - Normalize the keyboard access keys across platforms. Default isfalse. Enabling this assumes&is used in the button labels for the placement of the keyboard shortcut access key and labels will be converted so they work correctly on each platform,&characters are removed on macOS, converted to_on Linux, and left untouched on Windows. For example, a button label ofVie&wwill be converted toVie_won Linux andViewon macOS and can be selected viaAlt-Won Windows and Linux.
callbackFunction (optional)responseNumber - The index of the button that was clicked.checkboxCheckedBoolean - The checked state of the checkbox ifcheckboxLabelwas set. Otherwisefalse.
Returns Integer, the index of the clicked button, if a callback is provided
it returns undefined.
Shows a message box, it will block the process until the message box is closed. It returns the index of the clicked button.
The browserWindow argument allows the dialog to attach itself to a parent window, making it modal.
If a callback is passed, the dialog will not block the process. The API call
will be asynchronous and the result will be passed via callback(response).
dialog.showErrorBox(title, content)
titleString - The title to display in the error box.contentString - The text content to display in the error box.
Displays a modal dialog that shows an error message.
This API can be called safely before the ready event the app module emits,
it is usually used to report errors in early stage of startup. If called
before the app readyevent on Linux, the message will be emitted to stderr,
and no GUI dialog will appear.
dialog.showCertificateTrustDialog([browserWindow, ]options, callback) macOS Windows
browserWindowBrowserWindow (optional)optionsObjectcertificateCertificate - The certificate to trust/import.messageString - The message to display to the user.
callbackFunction
On macOS, this displays a modal dialog that shows a message and certificate
information, and gives the user the option of trusting/importing the
certificate. If you provide a browserWindow argument the dialog will be
attached to the parent window, making it modal.
On Windows the options are more limited, due to the Win32 APIs used:
- The
messageargument is not used, as the OS provides its own confirmation dialog. - The
browserWindowargument is ignored since it is not possible to make this confirmation dialog modal.
Sheets
On macOS, dialogs are presented as sheets attached to a window if you provide
a BrowserWindow reference in the browserWindow parameter, or modals if no
window is provided.
You can call BrowserWindow.getCurrentWindow().setSheetOffset(offset) to change
the offset from the window frame where sheets are attached.