dialog
Affiche des boîtes de dialogue système natives pour l’ouverture et l’enregistrement de fichiers, les alertes, etc.
Processus : Main
Par exemple: affichage d'une boîte de dialogue pour sélectionner plusieurs fichiers :
const { dialog } = require('electron')
console.log(dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }))
Méthodes
Le module dialog
dispose des méthodes suivantes :
dialog.showOpenDialogSync([window, ]options)
window
BaseWindow (facultatif)- Objet
options
title
string (facultatif)defaultPath
string (facultatif)buttonLabel
string (facultatif) - Label personnalisé pour le bouton de confirmation. Si il est laissé vide, le label par défaut sera utilisé.filters
FileFilter[] (facultatif)properties
string[] (facultatif) - Contient les fonctionnalités que la boîte de dialogue doit utiliser. Les valeurs suivantes sont prises en charge :openFile
- Permet la sélection de fichiers.openDirectory
- Permet la sélection de dossiers.multiSelections
- Permet la sélection de multiples chemins.showHiddenFiles
- Affiche les fichiers cachés dans la boîte de dialogue.createDirectory
macOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.promptToCreate
Windows - Demande la création du dossier si le chemin d'accès du fichier entré dans la boîte de dialogue n'existe pas. Cela ne créer par réellement le fichier dans le chemin d'accès mais permet de donner des chemins d'accès inexistant qui devraient être créés par l'application.noResolveAliases
macOS - Désactive la résolution de l'alias automatique (lien symbolique) . Les alias sélectionnés retourneront alors le chemin de l'alias au lieu de celui de leur cible.treatPackageAsDirectory
macOS - Considérer les paquets, tels que les dossiers.app
, comme des dossiers plutôt que des fichiers.dontAddToRecent
Windows - Ne pas ajouter l'élément en cours d'ouverture à la liste des documents récents.
message
string (facultatif) macOS - Message à afficher au-dessus des zones de saisie.securityScopedBookmarks
boolean (facultatif) macOS MAS - Permet la création desecurityScopedBookmarks
lorsqu'ils sont empaquetés pour le Mac App Store.
Retourne string[] | undefined
- le chemin du fichier choisi par l'utilisateur ; si la boîte de dialogue est annulée retourne undefined
.
L'argument window
permet à la boîte de dialogue de s'attacher elle-même à la fenêtre parent, la rendant modale.
filters
spécifie un tableau de types de fichiers qui peuvent être affichés ou sélectionnés lorsque vous voulez limiter l'utilisateur à un type spécifique. Par exemple :
{
filtres: [
{ name : 'Images', extensions: ['jpg', 'png', 'gif'] },
{ name: 'Films', extensions: ['mkv', 'avi', 'mp4'] },
{ name: 'Type de fichier personnalisé', extensions: ['as'] },
{ name: 'Tous les fichiers', extensions: ['*'] }
]
}
Le tableau d'extensions
doit contenir des extensions sans caractères génériques ou de point (par exemple 'png'
est correct, mais '.png'
et '*.png'
ne l'est pas). Pour afficher tous les fichiers, utilisez le caractère générique '*'
(aucun autre caractère générique n'est pris en charge).
Remarque : Sur Windows et Linux, une boîte de dialogue ne peux pas être à la fois une sélection de fichier et une sélection de dossier, donc si vous définissez sur ces plateformes properties
à ['openFile', 'openDirectory']
, c'est la sélection de dossier qui s'affichera.
dialog.showOpenDialogSync(mainWindow, {
propriétés: ['openFile', 'openDirectory']
})
dialog.showOpenDialog([window, ]options)
window
BaseWindow (facultatif)- Objet
options
title
string (facultatif)defaultPath
string (facultatif)buttonLabel
string (facultatif) - Label personnalisé pour le bouton de confirmation. Si il est laissé vide, le label par défaut sera utilisé.filters
FileFilter[] (facultatif)properties
string[] (facultatif) - Contient les fonctionnalités que la boîte de dialogue doit utiliser. Les valeurs suivantes sont prises en charge :openFile
- Permet la sélection de fichiers.openDirectory
- Permet la sélection de dossiers.multiSelections
- Permet la sélection de multiples chemins.showHiddenFiles
- Affiche les fichiers cachés dans la boîte de dialogue.createDirectory
macOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.promptToCreate
Windows - Demande la création du dossier si le chemin d'accès du fichier entré dans la boîte de dialogue n'existe pas. Cela ne crée par réellement le fichier dans le chemin d'accès mais permet de donner des chemins d'accès inexistant devant être créés par l'application.noResolveAliases
macOS - Désactive la résolution de l'alias automatique (lien symbolique) . Les alias sélectionnés retourneront alors le chemin de l'alias au lieu de celui de leur cible.treatPackageAsDirectory
macOS - Considérer les paquets, tels que les dossiers.app
, comme des dossiers plutôt que des fichiers.dontAddToRecent
Windows - Ne pas ajouter l'élément en cours d'ouverture à la liste des documents récents.
message
string (facultatif) macOS - Message à afficher au-dessus des zones de saisie.securityScopedBookmarks
boolean (facultatif) macOS MAS - Permet la création desecurityScopedBookmarks
lorsqu'ils sont empaquetés pour le Mac App Store.
Retourne Promise<Object>
- Se résout avec un objet contenant les éléments suivants :
canceled
booléen - Indique si la boîte de dialogue a été annulée ou non.filePaths
string[] - Un tableau de chemins d'accès choisi par l'utilisateur. Si la boîte de dialogue est annulée, ce sera un tableau vide.bookmarks
string[] (facultatif) macOS MAS - Un tableau correspondant au tableaufilePaths
de chaînes encodées en base64 qui contient des données desecurity scoped bookmark
. Pour qu'il soit rempli,securityScopedBookmarks
doit être activé. (Pour les valeurs de retour, voir la table ici.)
L'argument window
permet à la boîte de dialogue de s'attacher elle-même à la fenêtre parent, la rendant modale.
filters
spécifie un tableau de types de fichiers qui peuvent être affichés ou sélectionnés lorsque vous voulez limiter l'utilisateur à un type spécifique. Par exemple :
{
filtres: [
{ name : 'Images', extensions: ['jpg', 'png', 'gif'] },
{ name: 'Films', extensions: ['mkv', 'avi', 'mp4'] },
{ name: 'Type de fichier personnalisé', extensions: ['as'] },
{ name: 'Tous les fichiers', extensions: ['*'] }
]
}
Le tableau d'extensions
devra contenir les extensions sans caractères génériques ou point (par exemple 'png'
est correct, mais '.png'
et '*.png'
ne l'est pas). Pour afficher tous les fichiers, utilisez le caractère générique '*'
(aucun autre caractère générique n'est pris en charge).
Remarque : Sur Windows et Linux, une boîte de dialogue ne peux pas être à la fois une sélection de fichier et une sélection de dossier, donc si vous définissez sur ces plateformes properties
à ['openFile', 'openDirectory']
, c'est la sélection de dossier qui s'affichera.
dialog.showOpenDialog(mainWindow, {
properties: ['openFile', 'openDirectory']
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})
dialog.showSaveDialogSync([window, ]options)
window
BaseWindow (facultatif)- Objet
options
title
string (facultatif) - Titre de la boîte de dialogue. Ne peut pas être affiché sur certains environnements de bureau Linux.defaultPath
string (facultatif) - Chemin d'accès absolu, le chemin d'accès absolu du fichier, ou le nom du fichier à utiliser par défaut.buttonLabel
string (facultatif) - Label personnalisé pour le bouton de confirmation. Si il est laissé vide, le label par défaut sera utilisé.filters
FileFilter[] (facultatif)message
string (facultatif) macOS - Message à afficher au-dessus des champs de texte.nameFieldLabel
string (facultatif) macOS - Label personnalisé pour le texte affiché devant le champ de texte du nom de fichier.showsTagField
boolean (facultatif) macOS - Affiche le champ de texte.true
par défaut.properties
string[] (facultatif)showHiddenFiles
- Affiche les fichiers cachés dans la boîte de dialogue.createDirectory
macOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.treatPackageAsDirectory
macOS - Considérer les paquets, tels que les dossiers.app
, comme des dossiers plutôt que des fichiers.showOverwriteConfirmation
Linux - Définit si une boîte de dialogue de confirmation sera affichée lorsque l’utilisateur tape un nom de fichier déjà existant.dontAddToRecent
Windows - N'ajoutez pas l'élément en cours d'ouverture à la liste des documents récents.
securityScopedBookmarks
boolean (facultatif) macOS MAS - Créez un marque-page à portée de sécurité lorsque empaqueté pour le Mac App Store. Si cette option est activée et que le fichier n'existe pas encore, un fichier vide sera créé dans le chemin choisi.
Retourne une string
étant le chemin du fichier choisi par l'utilisateur ou une chaine vide si la boîte de dialogue est annulée.
L'argument window
permet à la boîte de dialogue de s'attacher elle-même à la fenêtre parent, la rendant modale.
Les filters
spécifie un tableau de types de fichiers qui peuvent être affichés, allez voir dialog.showOpenDialog
pour un exemple.
dialog.showSaveDialog([window, ]options)
window
BaseWindow (facultatif)- Objet
options
title
string (facultatif) - Titre de la boîte de dialogue. Ne peut pas être affiché sur certains environnements de bureau Linux.defaultPath
string (facultatif) - Chemin d'accès absolu, le chemin d'accès absolu du fichier, ou le nom du fichier à utiliser par défaut.buttonLabel
string (facultatif) - Étiquette personnalisée pour le bouton de confirmation. Si laissé vide, l'étiquette par défaut sera utilisé.filters
FileFilter[] (facultatif)message
string (facultatif) macOS - Message à afficher au-dessus des champs de texte.nameFieldLabel
string (facultatif) macOS - Étiquette personnalisée pour le texte affiché devant le champ de texte du nom de fichier.showsTagField
boolean (facultatif) macOS - Affiche le champ de texte, par défaut àtrue
.properties
string[] (facultatif)showHiddenFiles
- Affiche les fichiers cachés dans la boîte de dialogue.createDirectory
macOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.treatPackageAsDirectory
macOS - Considérer les paquets, tels que les dossiers.app
, comme des dossiers plutôt que des fichiers.showOverwriteConfirmation
Linux - Définit si une boîte de dialogue de confirmation sera affichée lorsque l’utilisateur tape un nom de fichier déjà existant.dontAddToRecent
Windows - Ne pas ajouter l'élément en cours d'ouverture à la liste des documents récents.
securityScopedBookmarks
boolean (facultatif) macOS MAS - Crée un marque-page à portée de sécurité lorsque empaqueté pour le Mac App Store. Si cette option est activée et que le fichier n'existe pas encore, un fichier vide sera créé dans le chemin choisi.
Retourne Promise<Object>
- Qui se résout avec un objet contenant les éléments suivants :
canceled
booléen - Indique si la boîte de dialogue a été annulée ou non.filePath
string - seraundefined
si la boîte de dialogue est annulée, .bookmark
string (facultatif) macOS MAS - Chaîne codée en Base64 qui contient les données de signet étendues de sécurité pour le fichier enregistré. Mais pour celasecurityScopedBookmarks
doit être activé. (Pour les valeurs de retour, voir la table ici.)
L'argument window
permet à la boîte de dialogue de s'attacher elle-même à la fenêtre parent, la rendant modale.
Les filters
spécifie un tableau de types de fichiers qui peuvent être affichés, allez voir dialog.showOpenDialog
pour un exemple.
Remarque : Sur macOS, l'utilisation de la version asynchrone est recommandée pour éviter les problèmes lorsque étend et réduit la boîte de dialogue.
dialog.showMessageBoxSync([wndow, ]options)
window
BaseWindow (facultatif)- Objet
options
message
chaîne - Contenu de la boîte de message.type
string (facultatif) - Peut êtrenone
,info
,error
,question
ouwarning
. Sur Windows,question
affiche la même icône queinfo
, sauf si vous définissez une autre en utilisant l'optionicon
. Sur macOS,warning
eterror
affichent la même icône d'avertissement.boutons
string[] (facultatif) - Tableau de textes pour les boutons. Sous Windows, un tableau vide entraînera un bouton intitulé « OK ».defaultId
Integer (facultatif) - Index du bouton dans le tableau des boutons qui seront sélectionnés par défaut lorsque la boîte de message s'ouvrira.title
string (facultatif) - Titre de la boîte de message, certaines plateformes ne l'afficheront pas.detail
string (facultatif) - Informations supplémentaires du message.icon
(NativeImage | string) (facultatif)textWidth
Integer (facultatif) macOS - Largeur personnalisée du texte dans la boîte de messages.cancelId
Integer (facultatif) - Index du bouton à utiliser pour annuler la boîte de dialogue, via la toucheEsc
. Par défaut, ceci est assigné au premier bouton avec l'étiquette "annuler" ou "non". Si aucun bouton de ce type n'existe et que cette option n'est pas définie,0
sera utilisé comme valeur de retour .noLink
booléen (facultatif) - Sous Windows, Electron essaiera de déterminer quelsbuttons
sont des boutons courants (comme "Annuler" ou "Oui"), et affichera les autres comme liens de commande dans le dialog. Cela peut faire apparaître la boîte de dialogue dans le style des applications Windows modernes. Si vous n'aimez pas ce comportement, vous pouvez définirnoLink
àtrue
.normalizeAccessKeys
boolean (facultatif) - Normalise les clés d'accès au clavier sur toutes les plateformes. Par défaut la valeur estfalse
. Activer ceci suppose que&
est utilisé dans les libellés des boutons pour le placement de la touche d'accès du raccourci clavier et les libellés seront convertis pour qu'ils fonctionnent correctement sur chaque plateforme, le caractère&
est supprimé sur macOS, convertis en_
sous Linux, et conservé sur Windows. Par exemple, une étiquette de bouton deVie&w
sera converti enVie_w
sous Linux etVie
sous macOS et peut être sélectionné viaAlt-W
sur Windows et Linux.
Retourne Integer
- l'index du bouton cliqué.
Affiche une boîte de message, elle bloque le processus jusqu'à ce que la boîte de message soit fermée. Retourne l'index du bouton cliqué.
L'argument window
permet à la boîte de dialogue de s'attacher elle-même à la fenêtre parent, la rendant modale. Si la window
n’est pas affiché, la boîte de dialogue n’y sera pas attachée. Dans ce cas, elle sera affiché comme une fenêtre indépendante.
dialog.showMessageBox([window, ]options)
window
BaseWindow (facultatif)- Objet
options
message
chaîne - Contenu de la boîte de message.type
string (facultatif) - Peut êtrenone
,info
,error
,question
ouwarning
. Sur Windows,question
affiche la même icône queinfo
, sauf si vous définissez une autre en utilisant l'optionicon
. Sur macOS,warning
eterror
affichent la même icône d'avertissement.boutons
string[] (facultatif) - Tableau de textes pour les boutons. Sous Windows, un tableau vide entraînera un bouton intitulé « OK ».defaultId
Integer (facultatif) - Index du bouton dans le tableau des boutons qui seront sélectionnés par défaut lorsque la boîte de message s'ouvrira.signal
AbortSignal (facultatif) - Passe une instance de AbortSignal pour éventuellement fermer la boîte de message, celle-ci se comportera comme si elle avait été annulée par l’utilisateur. Sur macOS,signal
ne fonctionne pas avec les boîtes de messages qui n'ont pas de fenêtre parente, car ces boîtes de messages s'exécutent de façon synchronisée en raison de limitations de la plate-forme.title
string (facultatif) - Titre de la boîte de message, certaines plateformes ne l'afficheront pas.detail
string (facultatif) - Informations supplémentaires du message.checkboxLabel
string (facultatif) - Si fourni, la case de message inclura une case à cocher avec l'étiquette donnée.checkboxChecked
boolean (facultatif) - Etat initial de la case à cocher.false
par défaut.icon
(NativeImage | string) (facultatif)textWidth
Integer(facultatif) macOS - Largeur personnalisée du texte dans la boîte de message.cancelId
Integer (facultatif) - Iindex du bouton à utiliser pour annuler la boîte de dialogue, via la toucheEsc
. Par défaut, ceci est assigné au premier bouton avec l'étiquette "annuler" ou "non". Si aucun bouton de ce type n'existe et que cette option n'est pas définie,0
sera utilisé comme valeur de retour .noLink
booléen (facultatif) - Sous Windows, Electron essaiera de déterminer quelsbuttons
sont des boutons courants (comme "Annuler" ou "Oui"), et affichera les autres comme liens de commande dans le dialog. Cela peut faire apparaître la boîte de dialogue dans le style des applications Windows modernes. Si vous n'aimez pas ce comportement, vous pouvez définirnoLink
àtrue
.normalizeAccessKeys
boolean (facultatif) - Normalise les clés d'accès au clavier sur toutes les plateformes. Par défaut la valeur estfalse
. Activer ceci suppose que&
est utilisé dans les libellés des boutons pour le placement de la touche d'accès du raccourci clavier et les libellés seront convertis pour qu'ils fonctionnent correctement sur chaque plateforme, le caractère&
est supprimé sur macOS, convertis en_
sous Linux, et conservé sur Windows. Par exemple, une étiquette de bouton deVie&w
sera converti enVie_w
sous Linux etVie
sous macOS et peut être sélectionné viaAlt-W
sur Windows et Linux.
Retourne Promise<Object>
- résout avec une promesse contenant les propriétés suivantes :
response
number - Index du bouton qui a été cliqué.checkboxChecked
boolean - État coché de la case à cocher sicheckboxLabel
a été défini. Sinonfalse
.
Affichage d'une boite de message.
L'argument window
permet à la boîte de dialogue de s'attacher elle-même à la fenêtre parent, la rendant modale.
dialog.showErrorBox(title, content)
title
string - Le titre à afficher dans la boîte d'erreur.content
string - Le contenu du texte à afficher dans la boîte d'erreur.
Affiche une boîte de dialogue modale qui affiche un message d'erreur.
Cette API peut être appelée en toute sécurité avant l'évènement ready
que le module app
émet, il est généralement utilisé pour signaler des erreurs au début du démarrage. Si appelé avant l'application prêt
événement sous Linux, le message sera émis sur stderr, et aucune fenêtre GUI n'apparaîtra.
dialog.showCertificateTrustDialog([window, ]options)
macOS Windows
window
BaseWindow (facultatif)- Objet
options
certificat
certificat - Le certificat de confiance/importation.message
string - Le message à afficher à l'utilisateur.
Retourne Promise<void>
- qui se résout lorsque la boîte de dialogue de confiance du certificat est affichée.
Sur macOS, ceci affiche une boîte de dialogue modale présentant un message, les informations du certificat et donnant à l'utilisateur la possibilité de se fier/importer le certificat. Si vous fournissez en argument une window
, la boîte de dialogue sera attachée à la fenêtre parente, la rendant modale.
Sous Windows, les options sont plus limitées, en raison des API Win32 utilisées:
- L'argument
message
n'est pas utilisé, car l'OS fournit sa propre boîte de dialogue de confirmation. - L'argument
window
est ignoré car il n'est pas possible de rendre cette fenêtre de confirmation modale.
Tableau des signets
showOpenDialog
, showOpenDialogSync
, showSaveDialog
et showSaveDialogSync
retourne un tableau de bookmarks
.
Type de compilation | securityScopedBookmarks boolean | Type de Retour | Valeur de retour |
---|---|---|---|
macOS mas | True | Succès | ['LONGBOOKMARKSTRING'] |
macOS mas | True | Erreur | [''] (array de chaînes vides) |
macOS mas | False | NA | [] (empty array) |
non mas | any | NA | [] (empty array) |
Feuilles
Sur macOS, les dialogues sont présentés comme des feuilles attachées à une fenêtre si vous fournissez une référence BaseWindow
dans le paramètre window
, ou modales si aucune fenêtre n'est fournie.
Vous pouvez appeler BaseWindow.getCurrentWindow().setSheetOffset(offset)
pour changer le décalage depuis la fenêtre où les feuilles sont attachées.