- 对话框
- 方法
- dialog.showOpenDialog([browserWindow, ]options[, callback])
- dialog.showSaveDialog([browserWindow, ]options[, callback])
- dialog.showMessageBox([browserWindow, ]options[, callback])
- dialog.showErrorBox(title, content)
- dialog.showCertificateTrustDialog([browserWindow, ]options, callback) macOS Windows
- 工作表
- 方法
对话框
显示用于打开和保存文件、警报等的本机系统对话框。
线程:主线程
显示用于选择多个文件和目录的对话框的示例:
const { dialog } = require('electron')console.log(dialog.showOpenDialog({ properties: ['openFile', 'openDirectory', 'multiSelections'] }))
这个对话框是从Electron的主线程上打开的。如果要使用渲染器进程中的对话框对象, 可以使用remote来获得:
const { dialog } = require('electron').remoteconsole.log(dialog)
方法
dialog 模块具有以下方法:
dialog.showOpenDialog([browserWindow, ]options[, callback])
browserWindowBrowserWindow (可选)选项ObjecttitleString (可选)defaultPathString (可选)buttonLabelString (可选) - 「确认」按钮的自定义标签, 当为空时, 将使用默认标签。filtersFileFilter[] (可选)propertiesString -包含对话框应用的功能。支持以下值:openFile- 允许选择文件openDirectory- 允许选择文件夹multiSelections-允许多选。showHiddenFiles-显示对话框中的隐藏文件。createDirectorymacOS -允许你通过对话框的形式创建新的目录。promptToCreateWindows-如果输入的文件路径在对话框中不存在, 则提示创建。 这并不是真的在路径上创建一个文件,而是允许返回一些不存在的地址交由应用程序去创建。noResolveAliasesmacOS -禁用自动别名 (symlink) 路径解析。 选定的别名现在将返回别名路径而不是其目标路径。treatPackageAsDirectorymacOS -将包 (如.app文件夹) 视为目录而不是文件。
messageString (可选) macOS -显示在输入框上方的消息。securityScopedBookmarksBoolean (可选) masOS__mas - 在打包提交到Mac App Store时创建 security scoped bookmarks
callbackFunction (可选)filePathsString[] - 用户选择的文件路径的数组bookmarksString[] macOS__mas - 一个filePaths数组符合 base64 编码的安全作用域的书签数据。securityScopedBookmarks必须启用才能捕获数据。
ReturnsString[] | undefined, an array of file paths chosen by the user, if the callback is provided it returnsundefined.
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])
browserWindowBrowserWindow (可选)选项ObjecttitleString (可选)defaultPathString (可选) - 默认情况下使用的绝对目录路径、绝对文件路径或文件名。buttonLabelString (可选) - 「确认」按钮的自定义标签, 当为空时, 将使用默认标签。filtersFileFilter[] (可选)messageString (可选) macOS -显示在对话框上的消息。nameFieldLabelString (可选) macOS - 文件名输入框对应的自定义标签名。showsTagFieldBoolean (可选) macOS -显示标记输入框, 默认为true。securityScopedBookmarksBoolean (可选) masOS__mas - 在打包提交到Mac App Store时创建 security scoped bookmarks 当该选项被启用且文件尚不存在时,那么在选定的路径下将创建一个空文件。
callbackFunction (可选)filenameStringbookmarkString macOS__mas - 包含了安全作用域的书签数据 Base64 编码的字符串来保存文件。securityScopedBookmarks必须启用才有效。
ReturnsString | undefined, the path of the file chosen by the user, if a callback is provided or the dialog is cancelled it returnsundefined.
browserWindow 参数允许该对话框将自身附加到父窗口, 作为父窗口的模态框。
filters 可以指定可显示文件的数组类型,详见 dialog.showOpenDialog 事例
如果传递了 callback, 则 API 调用将是异步的, 结果将通过 callback (filename)传递.
dialog.showMessageBox([browserWindow, ]options[, callback])
browserWindowBrowserWindow (可选)选项ObjecttypeString (可选) - 可以为"none","info","error","question"或者"warning". 在 Windows 上,"question"与"info"显示相同的图标, 除非你使用了"icon"选项设置图标。 在 macOS 上,"warning"和"error"显示相同的警告图标buttonsString - 按钮的文本数组。在 Windows 上, 空数组在按钮上会显示 "OK".defaultIdInteger (可选) - 在 message box 对话框打开的时候,设置默认选中的按钮,值为在 buttons 数组中的索引.titleString (可选) - message box 的标题,一些平台不显示.messageString - message box 的内容.detailString (可选) - 额外信息.checkboxLabelString (可选) - 如果提供了If provided, 消息框将包含带有给定标签的复选框。 只有使用callback时,才能检查复选框的状态。checkboxCheckedBoolean (可选) - checkbox 的初始值,默认值为false.iconNativeImage (可选)cancelIdInteger (可选) - 用于取消对话框的按钮的索引,例如Esc键. By default this is assigned to the first button with "cancel" or "no" as the label. 默认情况下,它被分配给第一个按钮,文字为 “cancel” 或 “no”。 如果不存在这样的标记按钮,并且该选项没有设置,那么0将用作返回值或回调响应。noLinkBoolean (可选) - 在Windows上,应用将尝试找出哪个buttons是常用按钮(例如 "Cancel" 或 "Yes"),然后在对话框中以链接命令的方式展现其它的按钮。 这可以使对话框以现代Windows应用程序的风格显示。 如果你不喜欢这个行为, 你可以设置noLink为true.normalizeAccessKeysBoolean (可选) -规范跨平台的键盘访问键。 默认值为false. 用&连接和转换键盘访问键, 以便它们在每个平台上正常工作.&字符会在macOS上被删除,在 Linux 上会被转换为_,在 Windows 上保持不变。 例如Vie&w的按钮标签在 Linux 上会被转换为Vie_w,在 macOS 转换为View并且可以被选择。而Windows和Linux上表示Alt-W。
callbackFunction (可选)responseNumber - 被点击按钮的索引.checkboxCheckedBoolean - 如果设置了checkboxLabel,返回复选框是否被选中的状态。否则为false.
返回Integer, 即被点击按钮的索引, 如果提供回调方法, 它返回 undefined
显示消息框时,它将阻止进程直到消息框被关闭。返回点击按钮的索引。
browserWindow 参数允许该对话框将自身附加到父窗口, 作为父窗口的模态框。
如果传递了 callback,窗口将不会阻断进程。该API 将异步调用,并将结果通过 callback(response) 传递
dialog.showErrorBox(title, content)
titleString - 显示在错误框中的标题.contentString - 显示在错误框中的文本内容.
显示一个显示错误消息的模态对话框。
这个API可以在 app 模块触发 ready 事件之前被安全地调用,它通常用在启动时报告错误。 在 Linux 上, ready 事件之前调用这个API, 消息将被发送到stderr, 并且不会出现GUI对话框。
dialog.showCertificateTrustDialog([browserWindow, ]options, callback) macOS Windows
browserWindowBrowserWindow (可选)选项ObjectcertificateCertificate - 信任/导入的证书messageString - 要向用户显示的消息
callbackFunction
在macOS中, 将弹出一个用于展示消息与证书信息并向用户提供信任/导入证书的选项的模态对话框。 如果提供browserWindow参数, 则该对话框将附加到父窗口, 使其成模态框。
在Windows中, 受限于Win32 API,可选项变得更为有限:
message参数无效,因为操作系统提供了自身的确认对话框。browserWindow参数被忽略,因此无法成为模态对话框。
工作表
在MaCOS中,如果在<0>browserWindow</0>的参数中提供<0>BrowerWindow</0>这一参数,或者在非<0>browserWindow</0>中未提供<0>modals</0>参数,则将对附加到<0>window</0>中的<0>sheet</0>的形式呈现。
您可以调用 BrowserWindow.getCurrentWindow().setSheetOffset(offset) 来更改附加工作表的窗口框架的偏移量。
