dialog
dialog
显示用于打开和保存文件的本机系统对话框,警报等。
Process: Main
显示对话框以选择多个文件和目录的示例:
const {dialog} = require('electron')
console.log(dialog.showOpenDialog{properties: ['openFile', 'openDirectory', 'multiSelections']}))
Dialog从Electron的主线程中打开。如果您想使用渲染器进程中的对话框对象,请记住使用远程对象进行访问:
const {dialog} = require('electron').remote
console.log(dialog)
Methods
该dialog
模块具有以下方法:
dialog.showOpenDialog([browserWindow, ]options[, callback])
browserWindow
BrowserWindow(可选)
- `message` String (optional) _macOS_ - Message to display above input boxes.
callback
功能(可选)
返回String[]
一个由用户选择的文件路径数组,如果提供回调则返回undefined
。
该browserWindow
参数允许对话框将其自身附加到父窗口,使其成为模态。
该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)
注意:
在Windows和Linux的打开对话框不能既是一个文件选择器和目录选择,因此,如果您设置properties
到['openFile', 'openDirectory']
这些平台上的目录选择将被显示。
dialog.showSaveDialog([browserWindow, ]options[, callback])
browserWindow
BrowserWindow(可选)
返回String
,用户选择的文件路径,如果提供回调则返回undefined
。
该browserWindow
参数允许对话框将其自身附加到父窗口,使其成为模态。
所述filters
指定的文件类型的阵列可以被显示,见dialog.showOpenDialog
的一个例子。
如果传递了callback
,那么API调用将是异步的,并且结果将通过callback(filename)
dialog.showMessageBox([browserWindow, ]options[, callback])
browserWindow
BrowserWindow(可选)
返回Integer
,单击按钮的索引,如果提供了回调,则返回undefined。
显示一个消息框,它将阻止该过程,直到消息框关闭。它返回点击按钮的索引。
browserWindow
参数允许对话框将其自身附加到父窗口,使其成为模态。
如果a callback
通过,对话框将不会阻止该进程。API调用将是异步的,结果将通过callback(response)
。
dialog.showErrorBox(title, content)
title
字符串 - 要显示在错误框中的标题
显示一个显示错误消息的模式对话框。
ready
在app
模块发出事件之前,可以安全地调用此API ,它通常用于在启动的早期阶段报告错误。如果ready
在Linux上的应用程序事件之前调用,则该消息将发送到stderr,并且不会出现GUI对话框。
dialog.showCertificateTrustDialog([browserWindow, ]options, callback) macOS Windows
browserWindow
BrowserWindow(可选)
在macOS上,这将显示一个模式对话框,显示消息和证书信息,并为用户提供信任/导入证书的选项。如果提供browserWindow
参数,则对话框将附加到父窗口,使其成为模态。
在Windows上,由于使用了Win32 API,选项更加有限:
- 该
message
参数未使用,因为操作系统提供了自己的确认对话框。
Sheets
在macOS上,如果您BrowserWindow
在browserWindow
参数中提供参考,则会将对话框显示为附加到窗口的图纸; 如果未提供窗口,则显示模式。
您可以调用BrowserWindow.getCurrentWindow().setSheetOffset(offset)
以更改纸张所在窗口框的偏移量。