@tauri-apps/plugin-dialog
Interfaces
Sección titulada «Interfaces»ConfirmDialogOptions
Sección titulada «ConfirmDialogOptions»Propiedades
Sección titulada «Propiedades»| 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 |
DialogFilter
Sección titulada «DialogFilter»Filtros de extensión para el diálogo de archivos.
2.0.0
Propiedades
Sección titulada «Propiedades»| 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 |
MessageDialogOptions
Sección titulada «MessageDialogOptions»2.0.0
Propiedades
Sección titulada «Propiedades»| 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 |
OpenDialogOptions
Sección titulada «OpenDialogOptions»Opciones para el diálogo de apertura.
2.0.0
Propiedades
Sección titulada «Propiedades»| 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 |
SaveDialogOptions
Sección titulada «SaveDialogOptions»Opciones para el diálogo de guardado.
2.0.0
Propiedades
Sección titulada «Propiedades»| 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 |
Alias de tipos
Sección titulada «Alias de tipos»FileAccessMode
Sección titulada «FileAccessMode»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
MessageDialogButtons
Sección titulada «MessageDialogButtons»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
MessageDialogButtonsOk
Sección titulada «MessageDialogButtonsOk»type MessageDialogButtonsOk: object & BanExcept<"ok">;El botón Ok de un diálogo de mensaje.
Declaración de tipo
Sección titulada «Declaración de tipo»| 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
MessageDialogButtonsOkCancel
Sección titulada «MessageDialogButtonsOkCancel»type MessageDialogButtonsOkCancel: object & BanExcept<"ok" | "cancel">;Los botones Ok y Cancel de un diálogo de mensaje.
Declaración de tipo
Sección titulada «Declaración de tipo»| 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
MessageDialogButtonsYesNoCancel
Sección titulada «MessageDialogButtonsYesNoCancel»type MessageDialogButtonsYesNoCancel: object & BanExcept<"yes" | "no" | "cancel">;Los botones Yes, No y Cancel de un diálogo de mensaje.
Declaración de tipo
Sección titulada «Declaración de tipo»| 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
MessageDialogCustomButtons
Sección titulada «MessageDialogCustomButtons»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
MessageDialogDefaultButtons
Sección titulada «MessageDialogDefaultButtons»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
MessageDialogResult
Sección titulada «MessageDialogResult»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
OpenDialogReturn<T>
Sección titulada «OpenDialogReturn<T>»type OpenDialogReturn<T>: T["directory"] extends true ? T["multiple"] extends true ? string[] | null : string | null : T["multiple"] extends true ? string[] | null : string | null;Parámetros de tipo
Sección titulada «Parámetros de tipo»| Parámetro de tipo |
|---|
T extends OpenDialogOptions |
Fuente: https://github.com/tauri-apps/plugins-workspace/blob/v2/plugins/dialog/guest-js/index.ts#L296
PickerMode
Sección titulada «PickerMode»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
Funciones
Sección titulada «Funciones»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ámetros
Sección titulada «Parámetros»| 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. |
Devuelve
Sección titulada «Devuelve»Promise<boolean>
Una promesa que se resuelve a un boolean indicando si se hizo clic en Yes o no.
Ejemplo
Sección titulada «Ejemplo»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
confirm()
Sección titulada «confirm()»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ámetros
Sección titulada «Parámetros»| 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. |
Devuelve
Sección titulada «Devuelve»Promise<boolean>
Una promesa que se resuelve a un boolean indicando si se hizo clic en Ok o no.
Ejemplo
Sección titulada «Ejemplo»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
message()
Sección titulada «message()»function message(message, options?): Promise<MessageDialogResult>Muestra un diálogo de mensaje con un botón Ok.
Parámetros
Sección titulada «Parámetros»| 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. |
Devuelve
Sección titulada «Devuelve»Una promesa que indica el éxito o el fallo de la operación.
Ejemplo
Sección titulada «Ejemplo»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ámetros de tipo
Sección titulada «Parámetros de tipo»| Parámetro de tipo |
|---|
T extends OpenDialogOptions |
Parámetros
Sección titulada «Parámetros»| Parámetro | Tipo |
|---|---|
options |
T |
Devuelve
Sección titulada «Devuelve»Una promesa que se resuelve a la(s) ruta(s) seleccionada(s)
Ejemplos
Sección titulada “Ejemplos”import { open } from '@tauri-apps/plugin-dialog';// Open a selection dialog for image filesconst 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 directoriesconst 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ámetros
Sección titulada «Parámetros»| Parámetro | Tipo |
|---|---|
options |
SaveDialogOptions |
Devuelve
Sección titulada «Devuelve»Promise<string | null>
Una promesa que se resuelve a la ruta seleccionada.
Ejemplo
Sección titulada «Ejemplo»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