dialog
Affiche des boîtes de dialogue système natives pour l’ouverture et l’enregistrement de fichiers, les alertes, etc.
Process: 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)
windowBaseWindow (facultatif)- Objet
optionstitlestring (facultatif)defaultPathstring (facultatif)buttonLabelstring (facultatif) - Label personnalisé pour le bouton de confirmation. Si il est laissé vide, le label par défaut sera utilisé.filtersFileFilter[] (facultatif)propertiesstring[] (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.createDirectorymacOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.promptToCreateWindows - 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.noResolveAliasesmacOS - 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.treatPackageAsDirectorymacOS - Considérer les paquets, tels que les dossiers.app, comme des dossiers plutôt que des fichiers.dontAddToRecentWindows - Ne pas ajouter l'élément en cours d'ouverture à la liste des documents récents.
messagestring (facultatif) macOS - Message à afficher au-dessus des zones de saisie.securityScopedBookmarksboolean (facultatif) macOS MAS - Permet la création desecurityScopedBookmarkslorsqu'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).
[!NOTE] On Windows and Linux an open dialog can not be both a file selector and a directory selector, so if you set
propertiesto['openFile', 'openDirectory']on these platforms, a directory selector will be shown.
dialog.showOpenDialogSync(mainWindow, {
propriétés: ['openFile', 'openDirectory']
})
[!NOTE] On Linux
defaultPathis not supported when using portal file chooser dialogs unless the portal backend is version 4 or higher. You can use--xdg-portal-required-versioncommand-line switch to force gtk or kde dialogs.
dialog.showOpenDialog([window, ]options)
windowBaseWindow (facultatif)- Objet
optionstitlestring (facultatif)defaultPathstring (facultatif)buttonLabelstring (facultatif) - Label personnalisé pour le bouton de confirmation. Si il est laissé vide, le label par défaut sera utilisé.filtersFileFilter[] (facultatif)propertiesstring[] (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.createDirectorymacOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.promptToCreateWindows - 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.noResolveAliasesmacOS - 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.treatPackageAsDirectorymacOS - Considérer les paquets, tels que les dossiers.app, comme des dossiers plutôt que des fichiers.dontAddToRecentWindows - Ne pas ajouter l'élément en cours d'ouverture à la liste des documents récents.
messagestring (facultatif) macOS - Message à afficher au-dessus des zones de saisie.securityScopedBookmarksboolean (facultatif) macOS MAS - Permet la création desecurityScopedBookmarkslorsqu'ils sont empaquetés pour le Mac App Store.
Retourne Promise<Object> - Se résout avec un objet contenant les éléments suivants :
canceledbooléen - Indique si la boîte de dialogue a été annulée ou non.filePathsstring[] - 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.bookmarksstring[] (facultatif) macOS MAS - Un tableau correspondant au tableaufilePathsde chaînes encodées en base64 qui contient des données desecurity scoped bookmark. Pour qu'il soit rempli,securityScopedBookmarksdoit ê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 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).
[!NOTE] On Windows and Linux an open dialog can not be both a file selector and a directory selector, so if you set
propertiesto['openFile', 'openDirectory']on these platforms, a directory selector will be shown.
dialog.showOpenDialog(mainWindow, {
properties: ['openFile', 'openDirectory']
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})
[!NOTE] On Linux
defaultPathis not supported when using portal file chooser dialogs unless the portal backend is version 4 or higher. You can use--xdg-portal-required-versioncommand-line switch to force gtk or kde dialogs.
dialog.showSaveDialogSync([window, ]options)
windowBaseWindow (facultatif)- Objet
optionstitlestring (facultatif) - Titre de la boîte de dialogue. Ne peut pas être affiché sur certains environnements de bureau Linux.defaultPathstring (facultatif) - Chemin d'accès absolu, le chemin d'accès absolu du fichier, ou le nom du fichier à utiliser par défaut.buttonLabelstring (facultatif) - Label personnalisé pour le bouton de confirmation. Si il est laissé vide, le label par défaut sera utilisé.filtersFileFilter[] (facultatif)messagestring (facultatif) macOS - Message à afficher au-dessus des champs de texte.nameFieldLabelstring (facultatif) macOS - Label personnalisé pour le texte affiché devant le champ de texte du nom de fichier.showsTagFieldboolean (facultatif) macOS - Affiche le champ de texte.truepar défaut.propertiesstring[] (facultatif)showHiddenFiles- Affiche les fichiers cachés dans la boîte de dialogue.createDirectorymacOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.treatPackageAsDirectorymacOS - Considérer les paquets, tels que les dossiers.app, comme des dossiers plutôt que des fichiers.showOverwriteConfirmationLinux - Définit si une boîte de dialogue de confirmation sera affichée lorsque l’utilisateur tape un nom de fichier déjà existant.dontAddToRecentWindows - N'ajoutez pas l'élément en cours d'ouverture à la liste des documents récents.
securityScopedBookmarksboolean (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)
windowBaseWindow (facultatif)- Objet
optionstitlestring (facultatif) - Titre de la boîte de dialogue. Ne peut pas être affiché sur certains environnements de bureau Linux.defaultPathstring (facultatif) - Chemin d'accès absolu, le chemin d'accès absolu du fichier, ou le nom du fichier à utiliser par défaut.buttonLabelstring (facultatif) - Étiquette personnalisée pour le bouton de confirmation. Si laissé vide, l'étiquette par défaut sera utilisé.filtersFileFilter[] (facultatif)messagestring (facultatif) macOS - Message à afficher au-dessus des champs de texte.nameFieldLabelstring (facultatif) macOS - Étiquette personnalisée pour le texte affiché devant le champ de texte du nom de fichier.showsTagFieldboolean (facultatif) macOS - Affiche le champ de texte, par défaut est àtrue.propertiesstring[] (facultatif)showHiddenFiles- Affiche les fichiers cachés dans la boîte de dialogue.createDirectorymacOS - Permet la création de nouveaux dossiers depuis la boîte de dialogue.treatPackageAsDirectorymacOS - Considérer les paquets, tels que les dossiers.app, comme des dossiers plutôt que des fichiers.showOverwriteConfirmationLinux - Définit si une boîte de dialogue de confirmation sera affichée lorsque l’utilisateur tape un nom de fichier déjà existant.dontAddToRecentWindows - Ne pas ajouter l'élément en cours d'ouverture à la liste des documents récents.
securityScopedBookmarksboolean (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> - Se résout avec un objet contenant les éléments suivants :
canceledbooléen - Indique si la boîte de dialogue a été annulée ou non.filePathstring - seraundefinedsi la boîte de dialogue est annulée, .bookmarkstring (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 celasecurityScopedBookmarksdoit ê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.
[!NOTE] On macOS, using the asynchronous version is recommended to avoid issues when expanding and collapsing the dialog.
dialog.showMessageBoxSync([window, ]options)
windowBaseWindow (facultatif)- Objet
optionsmessagechaîne - Contenu de la boîte de message.typestring (facultatif) - Peut êtrenone,info,error,questionouwarning. Sur Windows,questionaffiche la même icône queinfo, sauf si vous définissez une autre en utilisant l'optionicon. Sur macOS,warningeterroraffichent la même icône d'avertissement.boutonsstring[] (facultatif) - Tableau de textes pour les boutons. Sous Windows, un tableau vide entraînera un bouton intitulé « OK ».defaultIdInteger (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.titlestring (facultatif) - Titre de la boîte de message, certaines plateformes ne l'afficheront pas.detailstring (facultatif) - Informations supplémentaires du message.icon(NativeImage | string) (facultatif)textWidthInteger (facultatif) macOS - Largeur personnalisée du texte dans la boîte de messages.cancelIdInteger (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,0sera utilisé comme valeur de retour .noLinkbooléen (facultatif) - Sous Windows, Electron essaiera de déterminer quelsbuttonssont 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.normalizeAccessKeysboolean (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&wsera converti enVie_wsous Linux etViesous macOS et peut être sélectionné viaAlt-Wsur 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)
windowBaseWindow (facultatif)- Objet
optionsmessagechaîne - Contenu de la boîte de message.typestring (facultatif) - Peut êtrenone,info,error,questionouwarning. Sur Windows,questionaffiche la même icône queinfo, sauf si vous définissez une autre en utilisant l'optionicon. Sur macOS,warningeterroraffichent la même icône d'avertissement.boutonsstring[] (facultatif) - Tableau de textes pour les boutons. Sous Windows, un tableau vide entraînera un bouton intitulé « OK ».defaultIdInteger (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.signalAbortSignal (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,signalne 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.titlestring (facultatif) - Titre de la boîte de message, certaines plateformes ne l'afficheront pas.detailstring (facultatif) - Informations supplémentaires du message.checkboxLabelstring (facultatif) - Si fourni, la case de message inclura une case à cocher avec l'étiquette donnée.checkboxCheckedboolean (facultatif) - Etat initial de la case à cocher.falsepar défaut.icon(NativeImage | string) (facultatif)textWidthInteger(facultatif) macOS - Largeur personnalisée du texte dans la boîte de message.cancelIdInteger (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,0sera utilisé comme valeur de retour .noLinkbooléen (facultatif) - Sous Windows, Electron essaiera de déterminer quelsbuttonssont 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.normalizeAccessKeysboolean (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&wsera converti enVie_wsous Linux etViesous macOS et peut être sélectionné viaAlt-Wsur Windows et Linux.
Retourne Promise<Object> - résout avec une promesse contenant les propriétés suivantes :
responsenumber - Index du bouton qui a été cliqué.checkboxCheckedboolean - État coché de la case à cocher sicheckboxLabela é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)
titlestring - Le titre à afficher dans la boîte d'erreur.contentstring - 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
windowBaseWindow (facultatif)- Objet
optionscertificatcertificat - Le certificat de confiance/importation.messagestring - 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
messagen'est pas utilisé, car l'OS fournit sa propre boîte de dialogue de confirmation. - L'argument
windowest ignoré car il n'est pas possible de rendre cette fenêtre de confirmation modale.
Tableau des signets
showOpenDialog and showSaveDialog resolve to an object with a bookmarks field. This field is an array of Base64 encoded strings that contain the security scoped bookmark data for the saved file. The securityScopedBookmarks option must be enabled for this to be present.
| 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.