Skip to content

Dialog

对话框弹窗,当在扩展进程使用的时候,弹出普通弹窗,如果在面板进程使用,则会弹出模态弹窗

通用接口说明

MessageDialogOptions

NameTypeDescription
title?string标题,在部分可能会被隐藏
detail?string详细描述
buttons?string array在弹窗上新增一个或者多个按钮
default?number打开弹窗时默认选中的按钮
cancel?number当弹窗关闭时,默认触发的按钮
checkboxLabel?number在弹窗上附加一个可选项
checkboxChecked?number弹窗上附加的可选项默认值

SelectDialogOptions

NameTypeDescription
title?string标题,在部分可能会被隐藏
button?string弹窗按钮上的文字
path?string默认打开位置
type?`directoryfile`
multi?boolean是否可以多选
filters?object array过滤弹窗可选择的对象
extensions?string array设置可选择的文件扩展名,例如 'png'

SaveDialogReturnValue

NameTypeDescription
canceledboolean用户是否取消
filePathstring选择的文件路径

OpenDialogReturnValue

NameTypeDescription
canceledboolean用户是否取消
filePathsstring array选择的文件路径

filters 示例

typescript
{
  filters: [
    { name: 'Images', extensions: ['jpg', 'png', 'gif'] },
    { name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
    { name: 'Custom File Type', extensions: ['as'] },
    { name: 'All Files', extensions: ['*'] }
  ]
}

函数

info

info(message: string, options?: MessageDialogOptions): Promise<MessageBoxReturnValue>

普通信息弹窗

请求参数

NameTypeDescription
messagestring显示的消息
options?MessageDialogOptions信息弹窗可选参数

返回结果

Promise<MessageBoxReturnValue>

typescript
const result = await Editor.Dialog.info('Dialog Message', {
    buttons: ['confirm', 'cancel'],
    title: 'Dialog Title',
});
if (0 == result.response) {
    // ... confirm event
} else {
    // ... cancel event
}

warn

warn(message: string, options?: MessageDialogOptions): Promise<MessageBoxReturnValue>

警告弹窗

请求参数

NameTypeDescription
messagestring警告信息
options?MessageDialogOptions警告弹窗可选参数

返回结果

Promise<MessageBoxReturnValue>

typescript
await Editor.Dialog.warn('Warn Message');

error

error(message: string, options?: MessageDialogOptions): Promise<MessageBoxReturnValue>

错误弹窗

请求参数

NameTypeDescription
messagestring错误信息
options?MessageDialogOptions错误弹窗可选参数

返回结果

Promise<MessageBoxReturnValue>

typescript
await Editor.Dialog.error('error content', {
    title: 'options-title'
});

save

save(options?: MessageDialogOptions): Promise<SaveDialogReturnValue>

保存文件弹窗,保存文件时只能选择文件夹,且无法多选,相关参数不会生效

请求参数

NameTypeDescription
options?SelectDialogOptions保存文件窗口参数

返回结果

Promise<SaveDialogReturnValue>

typescript
const result = await Editor.Dialog.save({
    path: Editor.Project.path,
    title: 'Save Title',
    filters: [
        { name: 'Package', extensions: ['zip'] },
    ],
});
if (!result.filePath) {
    return;
}

select

select(options?: SelectDialogOptions): Promise<OpenDialogReturnValue>

选择文件弹窗

请求参数

NameTypeDescription
options?SelectDialogOptions选择弹窗参数

返回结果

Promise<OpenDialogReturnValue>

typescript
const result = await Editor.Dialog.select({
    title: 'Select Title',
    path: aEditor.Project.path,
    filters: [{ name: 'Package', extensions: ['zip'] }],
});
if (result.filePaths && result.filePaths[0]) {
    return result.filePaths[0];
} else {
    return '';
}

更多说明请参考 Electron 官方文档