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(可选)options
目的title
字符串(可选)defaultPath
字符串(可选)buttonLabel
字符串(可选) - 确认按钮的自定义标签,当其为空时,将使用默认标签。filters
FileFilter [](可选)properties
字符串 - 包含对话框应该使用的特征。支持以下值:openFile
- 允许选择文件。openDirectory
- 允许选择目录。multiSelections
- 允许选择多个路径。showHiddenFiles
- 在对话框中显示隐藏的文件。createDirectory
- 允许从对话框创建新的目录。苹果系统promptToCreate
- 如果在对话框中输入的文件路径不存在,则提示创建。这实际上并不在路径上创建文件,但允许返回应该由应用程序创建的不存在的路径。视窗noResolveAliases
- 禁用自动别名(符号链接)路径解析。选定的别名现在将返回别名路径而不是其目标路径。苹果系统treatPackageAsDirectory
- 将包(如.app
文件夹)视为目录而不是文件。苹果系统
- `message` String (optional) _macOS_ - Message to display above input boxes.
callback
功能(可选)filePaths
String [] - 用户选择的文件路径数组
返回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(可选)options
目的title
字符串(可选)defaultPath
字符串(可选) - 默认使用的绝对目录路径,绝对文件路径或文件名。buttonLabel
字符串(可选) - 确认按钮的自定义标签,当其为空时,将使用默认标签。filters
FileFilter [](可选)message
字符串(可选)macOS - 显示上面文本字段的消息。nameFieldLabel
字符串(可选)macOS - 文件名文本字段前显示文本的自定义标签。showsTagField
布尔(可选)macOS - 显示标签输入框,默认为true
。
callback
功能(可选)filename
串
返回String
,用户选择的文件路径,如果提供回调则返回undefined
。
该browserWindow
参数允许对话框将其自身附加到父窗口,使其成为模态。
所述filters
指定的文件类型的阵列可以被显示,见dialog.showOpenDialog
的一个例子。
如果传递了callback
,那么API调用将是异步的,并且结果将通过callback(filename)
dialog.showMessageBox([browserWindow, ]options[, callback])
browserWindow
BrowserWindow(可选)options
目的type
字符串(可选) -可以是"none"
,"info"
,"error"
,"question"
或"warning"
。在Windows上,"question"
显示与图标相同的图标"info"
,除非您使用该"icon"
选项设置图标。在MacOS,既"warning"
和"error"
显示相同的警告图标。buttons
字符串 - 按钮文本数组。在Windows上,一个空数组将导致一个标签为“OK”的按钮。defaultId
整数(可选) - 按钮阵列中按钮的索引,当消息框打开时将默认选择该按钮。title
字符串(可选) - 消息框的标题,某些平台不会显示它。message
字符串 - 消息框的内容。detail
字符串(可选) - 消息的额外信息。checkboxLabel
字符串(可选) - 如果提供,消息框将包含一个带给定标签的复选框。复选框状态只能在使用时检查callback
。checkboxChecked
布尔(可选) - 复选框的初始选中状态。false
默认。icon
NativeImage(可选)cancelId
整数(可选) - 通过键用于取消对话框的按钮索引Esc
。默认情况下,将其分配给第一个按钮,其中“取消”或“否”作为标签。如果没有这样的标签按钮,并且没有设置此选项,0
则将用作返回值或回调响应。Windows上忽略此选项。noLink
布尔(可选) - 在Windows上,Electron将尝试找出哪一个buttons
常用按钮(如“取消”或“是”),并在对话框中显示其他按钮作为命令链接。这可以使对话框以现代Windows应用程序的样式显示。如果你不喜欢这种行为,你可以设置noLink
为true
。normalizeAccessKeys
布尔(可选) - 跨平台规范键盘访问键。默认是false
。启用此假定&
用于放置键盘快捷键访问键的按钮标签,标签将被转换,以便它们在每个平台上正常工作,&
在macOS上删除字符,_
在Linux 上转换为字符,并在Windows上保持原样。例如,一个按钮标签Vie&w
将被转换为Vie_w
在Linux和View
MacOS上,并且可以通过Alt-W
Windows和Linux 进行选择。
callback
功能(可选)response
Number - 被点击的按钮的索引checkboxChecked
布尔值 -checkboxLabel
已设置复选框的选中状态。否则false
。
返回Integer
,单击按钮的索引,如果提供了回调,则返回undefined。
显示一个消息框,它将阻止该过程,直到消息框关闭。它返回点击按钮的索引。
browserWindow
参数允许对话框将其自身附加到父窗口,使其成为模态。
如果a callback
通过,对话框将不会阻止该进程。API调用将是异步的,结果将通过callback(response)
。
dialog.showErrorBox(title, content)
title
字符串 - 要显示在错误框中的标题content
字符串 - 要显示在错误框中的文本内容
显示一个显示错误消息的模式对话框。
ready
在app
模块发出事件之前,可以安全地调用此API ,它通常用于在启动的早期阶段报告错误。如果ready
在Linux上的应用程序事件之前调用,则该消息将发送到stderr,并且不会出现GUI对话框。
dialog.showCertificateTrustDialog([browserWindow, ]options, callback)
macOS Windows
browserWindow
BrowserWindow(可选)options
目的certificate
证书 - 要信任/导入的证书。message
字符串 - 要显示给用户的消息。
callback
功能
在macOS上,这将显示一个模式对话框,显示消息和证书信息,并为用户提供信任/导入证书的选项。如果提供browserWindow
参数,则对话框将附加到父窗口,使其成为模态。
在Windows上,由于使用了Win32 API,选项更加有限:
- 该
message
参数未使用,因为操作系统提供了自己的确认对话框。 - 该
browserWindow
参数被忽略,因为无法进行此确认对话模态。
Sheets
在macOS上,如果您BrowserWindow
在browserWindow
参数中提供参考,则会将对话框显示为附加到窗口的图纸; 如果未提供窗口,则显示模式。
您可以调用BrowserWindow.getCurrentWindow().setSheetOffset(offset)
以更改纸张所在窗口框的偏移量。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com