Saltar al contenido

@tauri-apps/plugin-dialog

Propiedad Tipo Descripción Definido en
cancelLabel? string La etiqueta del botón de cancelación. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L293
kind? "info" | "warning" | "error" El tipo de diálogo. Por defecto es info. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L289
okLabel? string La etiqueta del botón de confirmación. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L291
title? string El título del diálogo. Por defecto es el nombre de la app. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L287

Filtros de extensión para el diálogo de archivos.

2.0.0

Propiedad Tipo Descripción Definido en
extensions string[] Extensiones para filtrar, sin el prefijo .. Nota: Las plataformas móviles tienen APIs diferentes para filtrado que podrían no admitir extensiones. iOS: Las extensiones se admiten en el selector de documentos, pero no en el selector de medios. Android: No se admiten extensiones. Para estas plataformas, los tipos MIME son la forma principal de filtrar archivos, a diferencia de las extensiones. Esto significa que los valores de string aquí etiquetados como extensions también pueden ser un tipo MIME. Este nombre de propiedad extensions se mantiene por compatibilidad hacia atrás, pero podría ser revisado para especificar la diferencia entre filtrado por extensión o tipo MIME. Ejemplo extensions: ['svg', 'png'] Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L32
name string Nombre del filtro. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L14

2.0.0

Propiedad Tipo Descripción Definido en
buttons? MessageDialogButtons Los botones del diálogo. Ejemplo // Usar textos de botones por defecto del sistema await message('Hello World!', { buttons: 'Ok' }) await message('Hello World!', { buttons: 'OkCancel' }) // O con textos de botones personalizados await message('Hello World!', { buttons: { ok: 'Yes!' } }) await message('Take on the task?', { buttons: { ok: 'Accept', cancel: 'Cancel' } }) await message('Show the file content?', { buttons: { yes: 'Show content', no: 'Show in folder', cancel: 'Cancel' } }) Desde 2.4.0 Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L259
kind? "info" | "warning" | "error" El tipo de diálogo. Por defecto es info. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L230
okLabel? string La etiqueta del botón Ok. Deprecado Usa MessageDialogOptions.buttons en su lugar. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L236
title? string El título del diálogo. Por defecto es el nombre de la app. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L228

Opciones para el diálogo de apertura.

2.0.0

Propiedad Tipo Descripción Definido en
canCreateDirectories? boolean Si se permite crear directorios en el diálogo. Habilitado por defecto. Solo macOS Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L71
defaultPath? string Directorio inicial o ruta de archivo. Si es la ruta de un directorio, la interfaz del diálogo cambiará a esa carpeta. Si no es un directorio existente, el nombre de archivo se establecerá en la entrada del nombre de archivo del diálogo y el diálogo se establecerá en la carpeta contenedora. En móvil, el nombre de archivo siempre se usa en la entrada del nombre de archivo del diálogo. Si no se proporciona, Android usa (invalid).txt como nombre de archivo por defecto. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L60
directory? boolean Indica si el diálogo es una selección de directorio o no. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L64
fileAccessMode? FileAccessMode El modo de acceso a archivos del diálogo. Si no se proporciona, se usa copy, lo que coincide con el comportamiento del método open antes de la introducción de esta opción. Uso Si un archivo se abre con : 'copy', se copiará al sandbox de la app. Esto significa que el archivo se puede leer, editar, eliminar, copiar o cualquier otra operación sin ningún problema, ya que el archivo ahora pertenece a la app. Esto también significa que quien lo llama tiene la responsabilidad de eliminar el archivo si este no está destinado a conservarse en el sandbox de la app. Si un archivo se abre con : 'scoped', el archivo permanecerá en su ubicación original y el sistema gestionará automáticamente el acceso con alcance de seguridad. Nota Esto está pensado específicamente para selectores de documentos en iOS o macOS, en conjunto con recursos con alcance de seguridad (security scoped resources). ¿Por qué solo selectores de documentos y no selectores de imágenes o videos? Los selectores de imágenes y videos en iOS se comportan de manera diferente a los selectores de documentos y devuelven objetos NSItemProvider en lugar de URLs de archivo. Estos están destinados a ser efímeros (solo disponibles dentro del callback del selector) y no se puede acceder a ellos fuera del callback. Así que para selectores de imágenes y videos, la única forma de acceder al archivo es copiarlo al sandbox de la app, y esta es la URL que devuelve esta API. Esto significa que no hay provisión para usar el modo scoped con selectores de imágenes o videos. Si se usa un selector de imagen o video, siempre se usa copy. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L103
filters? DialogFilter[] Los filtros del diálogo. En plataformas móviles, si A) el pickerMode se establece en media, image, o video – o bien – B) los filtros incluyen únicamente tipos mime de imagen o video, se mostrará el selector de medios. De lo contrario, se mostrará el selector de documentos. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L51
multiple? boolean Indica si el diálogo permite selección múltiple o no. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L62
pickerMode? PickerMode El modo preferido del diálogo. Esto está pensado para plataformas móviles (iOS y Android) que tienen selectores de archivos y medios diferenciados. Si no se proporciona, el diálogo elegirá automáticamente el mejor modo basándose en los tipos MIME o extensiones de los filters. En desktop, esta opción se ignora. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L78
recursive? boolean Si directory es true, indica que se leerá de forma recursiva más adelante. Define si se permitirán subdirectorios en el alcance (scope) o no. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L69
title? string El título de la ventana del diálogo (solo desktop). Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L42

Opciones para el diálogo de guardado.

2.0.0

Propiedad Tipo Descripción Definido en
canCreateDirectories? boolean Si se permite crear directorios en el diálogo. Habilitado por defecto. Solo macOS Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L126
defaultPath? string Directorio inicial o ruta de archivo. Si es la ruta de un directorio, la interfaz del diálogo cambiará a esa carpeta. Si no es un directorio existente, el nombre de archivo se establecerá en la entrada del nombre de archivo del diálogo y el diálogo se establecerá en la carpeta contenedora. En móvil, el nombre de archivo siempre se usa en la entrada del nombre de archivo del diálogo. Si no se proporciona, Android usa (invalid).txt como nombre de archivo por defecto. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L124
filters? DialogFilter[] Los filtros del diálogo. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L115
title? string El título de la ventana del diálogo (solo desktop). Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L113

type FileAccessMode: "copy" | "scoped";

El modo de acceso a archivos del diálogo.

  • copy: copia/mueve el archivo seleccionado al sandbox de la app; no requiere acceso con alcance (scoped).
  • scoped: mantiene el archivo en su lugar; el acceso con alcance de seguridad se gestiona automáticamente.

Nota: Esta opción solo se admite en iOS 14 y superior. Este parámetro se ignora en iOS 13 e inferior.

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L147


type MessageDialogButtons: MessageDialogDefaultButtons | MessageDialogCustomButtons;

Los botones de un diálogo de mensaje.

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L219


type MessageDialogButtonsOk: object & BanExcept<"ok">;

El botón Ok de un diálogo de mensaje.

Nombre Tipo Descripción Definido en
ok string El botón Ok. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L201

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L199


type MessageDialogButtonsOkCancel: object & BanExcept<"ok" | "cancel">;

Los botones Ok y Cancel de un diálogo de mensaje.

Nombre Tipo Descripción Definido en
cancel string El botón Cancel. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L191
ok string El botón Ok. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L189

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L187


type MessageDialogButtonsYesNoCancel: object & BanExcept<"yes" | "no" | "cancel">;

Los botones Yes, No y Cancel de un diálogo de mensaje.

Nombre Tipo Descripción Definido en
cancel string El botón Cancel. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L179
no string El botón No. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L177
yes string El botón Yes. Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L175

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L173


type MessageDialogCustomButtons: MessageDialogButtonsYesNoCancel | MessageDialogButtonsOkCancel | MessageDialogButtonsOk;

Botones personalizados para un diálogo de mensaje.

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L209


type MessageDialogDefaultButtons: "Ok" | "OkCancel" | "YesNo" | "YesNoCancel";

Botones por defecto para un diálogo de mensaje.

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L154


type MessageDialogResult:
| "Yes"
| "No"
| "Ok"
| "Cancel"
| string & object;

El resultado de un diálogo de mensaje.

El resultado es un string si el diálogo tiene botones personalizados, de lo contrario es uno de los botones por defecto.

2.4.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L406


type OpenDialogReturn<T>: T["directory"] extends true ? T["multiple"] extends true ? string[] | null : string | null : T["multiple"] extends true ? string[] | null : string | null;
Parámetro de tipo
T extends OpenDialogOptions

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L296


type PickerMode: "document" | "media" | "image" | "video";

El modo preferido del diálogo. Esto está pensado para plataformas móviles (iOS y Android) que tienen selectores de archivos y medios diferenciados. En desktop, esta opción se ignora. Si no se proporciona, el diálogo elegirá automáticamente el mejor modo basándose en los tipos MIME o extensiones de los filtros.

Nota: Esta opción solo se admite en iOS 14 y superior. Este parámetro se ignora en iOS 13 e inferior.

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L137

function ask(message, options?): Promise<boolean>

Muestra un diálogo de pregunta con botones Yes y No.

Wrapper conveniente para await message('msg', { buttons: 'YesNo' }) === 'Yes'

Parámetro Tipo Descripción
message string El mensaje a mostrar.
options? string | ConfirmDialogOptions Las opciones del diálogo. Si es un string, representa el título del diálogo.

Promise<boolean>

Una promesa que se resuelve a un boolean indicando si se hizo clic en Yes o no.

import { ask } from '@tauri-apps/plugin-dialog';
const yes = await ask('Are you sure?', 'Tauri');
const yes2 = await ask('This action cannot be reverted. Are you sure?', { title: 'Tauri', kind: 'warning' });

2.0.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L467


function confirm(message, options?): Promise<boolean>

Muestra un diálogo de pregunta con botones Ok y Cancel.

Wrapper conveniente para await message('msg', { buttons: 'OkCancel' }) === 'Ok'

Parámetro Tipo Descripción
message string El mensaje a mostrar.
options? string | ConfirmDialogOptions Las opciones del diálogo. Si es un string, representa el título del diálogo.

Promise<boolean>

Una promesa que se resuelve a un boolean indicando si se hizo clic en Ok o no.

import { confirm } from '@tauri-apps/plugin-dialog';
const confirmed = await confirm('Are you sure?', 'Tauri');
const confirmed2 = await confirm('This action cannot be reverted. Are you sure?', { title: 'Tauri', kind: 'warning' });

2.0.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L504


function message(message, options?): Promise<MessageDialogResult>

Muestra un diálogo de mensaje con un botón Ok.

Parámetro Tipo Descripción
message string El mensaje a mostrar.
options? string | MessageDialogOptions Las opciones del diálogo. Si es un string, representa el título del diálogo.

Promise<MessageDialogResult>

Una promesa que indica el éxito o el fallo de la operación.

import { message } from '@tauri-apps/plugin-dialog';
await message('Tauri is awesome', 'Tauri');
await message('File not found', { title: 'Tauri', kind: 'error' });

2.0.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L437


function open<T>(options): Promise<OpenDialogReturn<T>>

Abrir un diálogo de selección de archivo/directorio.

Las rutas seleccionadas se añaden a los alcances (scopes) del sistema de archivos y del protocolo asset. Cuando la seguridad sea más importante que la facilidad de uso de esta API, prefiere escribir un comando dedicado en su lugar.

Ten en cuenta que el cambio de alcance no se persiste, por lo que los valores se borran al reiniciar la aplicación. Puedes guardarlo en el sistema de archivos usando tauri-plugin-persisted-scope.

Parámetro de tipo
T extends OpenDialogOptions
Parámetro Tipo
options T

Promise<OpenDialogReturn<T>>

Una promesa que se resuelve a la(s) ruta(s) seleccionada(s)

import { open } from '@tauri-apps/plugin-dialog';
// Open a selection dialog for image files
const selected = await open({
multiple: true,
filters: [{
name: 'Image',
extensions: ['png', 'jpeg']
}]
});
if (Array.isArray(selected)) {
// user selected multiple files
} else if (selected === null) {
// user cancelled the selection
} else {
// user selected a single file
}
import { open } from '@tauri-apps/plugin-dialog';
import { appDir } from '@tauri-apps/api/path';
// Open a selection dialog for directories
const selected = await open({
directory: true,
multiple: true,
defaultPath: await appDir(),
});
if (Array.isArray(selected)) {
// user selected multiple directories
} else if (selected === null) {
// user cancelled the selection
} else {
// user selected a single directory
}

2.0.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L356


function save(options): Promise<string | null>

Abrir un diálogo para guardar archivo/directorio.

La ruta seleccionada se añade a los alcances (scopes) del sistema de archivos y del protocolo asset. Cuando la seguridad sea más importante que la facilidad de uso de esta API, prefiere escribir un comando dedicado en su lugar.

Ten en cuenta que el cambio de alcance no se persiste, por lo que los valores se borran al reiniciar la aplicación. Puedes guardarlo en el sistema de archivos usando tauri-plugin-persisted-scope.

Parámetro Tipo
options SaveDialogOptions

Promise<string | null>

Una promesa que se resuelve a la ruta seleccionada.

import { save } from '@tauri-apps/plugin-dialog';
const filePath = await save({
filters: [{
name: 'Image',
extensions: ['png', 'jpeg']
}]
});

2.0.0

Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L390


© 2026 Colaboradores de Tauri. CC-BY / MIT