Aller au contenu principal

app

Contrôle le cycle de vie des événements de votre application.

Processus : Main

L’exemple suivant montre comment quitter l’application lors de la fermeture de la dernière fenêtre :

const { app } = require('electron')
app.on('window-all-closed', () => {
app.quit()
})

Événements

L'objet app émet les événements suivants :

Événement : 'will-finish-launching'

Émis lorsque l'application a terminé son démarrage de base. Sur Windows et Linux, l'événement will-finish-launching est le même que l'événement ready. Sur macOS, cet événement représente la notification applicationWillFinishLaunching de NSApplication. C'est ici qu'habituellement vous mettrez en place des écouteurs pour les événements open-file et open-url ici, lancer le reporteur d'incident et la mise à jour automatique.

Dans la plupart des cas, vous devez tout faire dans le gestionnaire d’événements ready .

Événement : 'ready'

Retourne :

Émis lorsqu'Electron a terminé l’initialisation. Sous macOS, launchInfo contient le userInfo des NSUserNotification ou les informations de UNNotificationResponse utilisées pour ouvrir l’application, si elle a été lancée à partir du Centre de notifications. Vous pouvez également appeler app.isReady() pour vérifier si cet événement a déjà été émis et app.whenReady() pour obtenir une Promesse qui sera résolue lorsque Electron sera initialisé.

Événement : 'window-all-closed'

Émis lorsque toutes les fenêtres ont été fermées.

Si vous n'ête pas abonné à cet événement et que toutes les fenêtres sont fermées, le comportement par défaut consiste à quitter l'application. Dans le cas contraire étant abonné, vous pouvez contrôler le fait que l'application se ferme ou non. Si l'utilisateur appuie sur Cmd + Q, ou que le développeur appelle app.quit(), Electron essaie d'abord de fermer toutes les fenêtres et puis émet l'événement will-quit et dans ce cas, l'événement window-all-closed ne sera pas émis.

Événement : 'before-quit'

Retourne :

  • event Event

Émis avant que l'application ne commence à fermer ses fenêtres. L'appel à event.preventDefault() empêchera le comportement par défaut, qui est de terminer l'application.

Remarque : Si la sortie de l'application a été initiée par autoUpdater.quitAndInstall(), before-quit sera émis ensuite émettant lui même l'événement close vers toutes les fenêtres pour les fermer.

Note: Sous Windows, cet événement ne sera pas émis si l'application doit être fermée suite à une extinction/re-démarrage du système ou à une déconnexion de l'utilisateur.

Événement : 'will-quit'

Retourne :

  • event Event

Émis lorsque toutes les fenêtres ont été fermées et que l'application va se fermer. L'appel à event.preventDefault() empêchera le comportement par défaut, qui est de terminer l'application.

Consultez la description de l’événement window-all-closed pour voir les différences entre les événements will-quit et window-all-closed.

Note: Sous Windows, cet événement ne sera pas émis si l'application doit être fermée suite à une extinction/re-démarrage du système ou à une déconnexion de l'utilisateur.

Événement : 'quit'

Retourne :

  • event Event
  • exitCode Integer

Émis lorsque l'application se quitte.

Note: Sous Windows, cet événement ne sera pas émis si l'application doit être fermée suite à une extinction/re-démarrage du système ou à une déconnexion de l'utilisateur.

Événement : 'open-file' macOS

Retourne :

  • event Event
  • path string

Émis lorsque l’utilisateur souhaite ouvrir un fichier avec l’application. L’événement open-file est habituellement émis lorsque l’application est déjà ouverte et que le système d’exploitation souhaite réutiliser l’application pour ouvrir le fichier. open-file est également émis lorsqu’un fichier est déposé sur le dock et que l’application n’est pas encore en cours d’exécution. Assurez-vous d’écouter l’événement open-file très tôt dans le démarrage de votre application pour gérer ce cas (même avant que l’événement ready ne soit émis).

Vous devrez appeler event.preventDefault() si vous souhaitez gérer cet événement.

Sur Windows, vous devrez analyser process.argv (dans le main process) pour obtenir le chemin d'accès.

Événement : 'open-url' macOS

Retourne :

  • event Event
  • url string

Émis lorsque l’utilisateur souhaite ouvrir une URL avec l’application. Le fichier de votre application Info.plist doit définir le schéma d'URL dans la touche CFBundleURLTypes et définir NSPrincipalClass à AtomApplication.

Vous devrez appeler event.preventDefault() si vous souhaitez gérer cet événement.

Comme pour l'événement open-file , vous devez vous assurer d’avoir enregistrer un listener pour l’événement open-url et ce plus tôt dans le démarrage de votre application pour détecter si l’application en cours est ouverte pour gérer une URL. Si vous enregistrez l'écouteur en réponse à un événement ready , vous manquerez les URL qui déclenchent le lancement de votre application.

Événement : 'activate' macOS

Retourne :

  • event Event
  • hasVisibleWindows boolean

Émis lorsque l'application est activée. Différentes actions peuvent déclencher cet événement, comme le lancement de l’application pour la première fois, essayer de relancer l’application lorsqu’elle est déjà en cours d’exécution, ou en cliquant sur l'icône du dock de l’application ou de l’icône de la barre des tâches.

Événement : 'did-become-active' macOS

Retourne :

  • event Event

Émis lorsque l'application est activée. Contrairement à l'événement activate, l'événement did-become-active est émit à chaque fois que l'application devient active, et pas seulement sur l'icône du Dock de l'application ou quand l'application est relancée.

Événement : 'continue-activity' macOS

Retourne :

  • event Event
  • type string - Une chaîne de caractère identifiant l'activité. Mappé sur NSUserActivity.activityType.
  • userInfo inconnu - Contient l'état spécifique de l'application stocké par l'activité sur un autre appareil.
  • Objet details
    • webpageURLstring (facultatif) - Chaîne identifiant l’URL de la page Web consultée par l’activité sur un autre appareil, le cas échéant.

Émis pendant Handoff lorsqu'une activité d'un appareil différent veut reprendre. Vous devrez appeler event.preventDefault() si vous souhaitez gérer cet événement.

Une activité d'utilisateur peut être poursuivie seulement dans une application qui a le même identifiant d'équipe développeur que l'application d'origine de la source d'activité et qui prend en charge le type d'activité. La prise en charge d’activité types est spécifiée dans le Info.plist de l'application sous la clé NSUserActivityType.

Événement: 'wil-continue-activity' macOS

Retourne :

Émis au cours de la procédure de transfert quand une activité depuis un périphérique différent veut reprendre. Vous devrez appeler event.preventDefault() si vous souhaitez gérer cet événement.

Événement : 'continue-activity-error' macOS

Retourne :

  • event Event
  • type string - Une chaîne de caractère identifiant l'activité. Mappé sur NSUserActivity.activityType.
  • error string - Une chaîne de caractères avec la description localisée de l'erreur.

Émis pendant Handoff lorsqu'une activité d'un appareil différent échoue à reprendre.

Événement : 'activity-was-continued' macOS

Retourne :

  • event Event
  • type string - Une chaîne de caractère identifiant l'activité. Mappé sur NSUserActivity.activityType.
  • userInfo inconnu - Contient l'état spécifique de l'application stocké par l'activité.

Émis pendant Handoff après qu'une activité d'un appareil a été reprise à partir d'un autre.

Événement : 'update-activity-state' macOS

Retourne :

  • event Event
  • type string - Une chaîne de caractère identifiant l'activité. Mappé sur NSUserActivity.activityType.
  • userInfo inconnu - Contient l'état spécifique de l'application stocké par l'activité.

Émis lorsque la procédure de transfert va être reprise par un autre appareil. Si vous avez besoin de mettre à jour l'état à transférer, vous devez appeler immédiatement event.preventDefault() , construire un nouveau dictionnaire userInfo et appeler app.updateCurrentActivity() sans plus tarder. Sinon, l'opération échouera et continue-activity-error sera appelée.

Événement : 'new-window-for-tab' macOS

Retourne :

  • event Event

Émis lorsque l'utilisateur clique sur le bouton natif de nouvel onglet de macOS. Le bouton de nouvel onglet n'est visible que si la BrowserWindow actuelle possède un tabbingIdentifier

Événement : 'browser-window-blur'

Retourne :

Émis lorsqu'une browserWindow perd le focus.

Événement : 'browser-window-focus'

Retourne :

Émis lorsqu'un browserWindow acquiert le focus.

Événement : 'browser-window-created'

Retourne :

Émis lorsqu'une nouvelle browserWindow est créé.

Événement : 'web-contents-created'

Retourne :

Émis lorsqu'un nouveau webContents est créé.

Événement 'certificate-error'

Retourne :

  • event Event
  • webContents WebContents
  • url string
  • error string - Le code d'erreur
  • certificate Certificate
  • callback Function
    • isTrusted boolean - Détermine si le certificat doit être considéré comme digne de confiance
  • isMainFrame boolean

Émis lorsque la vérification du certificate pour l'url a échouée. Pour approuver le certificat, vous devez empêcher le comportement par défaut avec event.preventDefault() et appeler callback(true).

const { app } = require('electron')

app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
if (url === 'https://github.com') {
// Logique de vérification.
event.preventDefault()
callback(true)
} else {
callback(false)
}
})

Événement : 'select-client-certificate'

Retourne :

Émis lorsqu'un certificat client est demandé.

L' url correspondant à l’entrée de navigation demande le certificat client et le callback peut être appelée avec une entrée filtrée dans la liste. L’utilisation de event.preventDefault() empêche l’application d’utiliser le premier certificat du store.

const { app } = require('electron')

app.on('select-client-certificate', (event, webContents, url, list, callback) => {
event.preventDefault()
callback(list[0])
})

Événement : 'login'

Retourne :

  • event Event
  • webContents WebContents
  • Objet authenticationResponseDetails
    • url URL
  • Objet authInfo
    • isProxy boolean
    • scheme string
    • host string
    • port Integer
    • realm string
  • callback Function
    • username string (facultatif)
    • password string (facultatif)

Émis lorsque webContents veut faire une authentification normale.

Le comportement par défaut est d'annuler toutes les authentifications. Pour remplacer cela vous devez empêcher le comportement par défaut avec event.preventDefault() et appeler callback(username, password) avec les identifiants.

const { app } = require('electron')

app.on('login', (event, webContents, details, authInfo, callback) => {
event.preventDefault()
callback('username', 'secret')
})

Si callback est appelé sans nom d'utilisateur ou mot de passe, la demande d'authentification sera annulée et l'erreur d'authentification sera renvoyée à la page .

Événement : 'gpu-info-update'

Émis chaque fois qu'il y a une mise à jour d'informations GPU.

Événement : 'gpu-process-crashed' Deprecated

Retourne :

  • event Event
  • killed boolean

Émis lorsque le processus GPU plante ou est tué.

Deprecated: Cet événement est remplacé par l'événement child-process-gone qui contient plus d'informations à propos de la raison du plantage du processus enfant. Ceci n'est pas toujours causé par un plantage. Le booléen killed peut être remplacé par la vérification de reason === 'killed' lorsque vous passez à l'utilisation de cet événement.

Événement : 'renderer-process-crashed' Deprecated

Retourne :

Émis lorsque le processus de rendu de webContents plante ou est tué.

Deprecated: Cet événement est remplacé par l'événement render-process-gone qui contient plus d'informations à propos de la raison du plantage du processus enfant. Ceci n'est pas toujours causé par un plantage. Le booléen killed peut être remplacé par la vérification de reason === 'killed' lorsque vous passez à l'utilisation de cet événement.

Événement : 'render-process-gone'

Retourne :

  • event Event
  • webContents WebContents
  • Objet details
    • reason string - La raison pour laquelle le processus de rendu a disparu. Valeurs possibles :
      • clean-exit - Le Processus s'est terminé avec le code de sortie zéro
      • abnormal-exit - Le Processus s'est terminé avec un code de sortie différent de zéro
      • killed - Le processus a reçu un SIGTERM ou a été tué autrement de l'extérieur
      • crashed - Processus s'est planté
      • oom - Le processus est tombé à cours de mémoire
      • launch-failed - Le processus n'a pu se lancer avec succès
      • integrity-failure - Les vérifications d'intégrité du code Windows ont échouées
    • exitCode Integer - Le code de sortie du proces, sauf si reason est launch-failed, dans ce cas là, exitCode sera le code d'échec du lancement specifique à la plateforme.

Émis lorsque le processus de rendu plante de manière inattendue. C'est normalement dans les cas où il s'est planté ou qu'il a été tué.

Événement : 'child-process-gone'

Retourne :

  • event Event
  • Objet details
    • type string - Type de processus. Une des valeurs suivantes:
      • Utility
      • Zygote
      • Sandbox helper
      • GPU
      • Pepper Plugin
      • Pepper Plugin Broker
      • Unknown
    • reason string - La raison pour laquelle le processus enfant s'est terminé. Valeurs possibles :
      • clean-exit - Le Processus s'est terminé avec le code de sortie zéro
      • abnormal-exit - Le Processus s'est terminé avec un code de sortie différent de zéro
      • killed - Le processus a reçu un SIGTERM ou a été tué autrement de l'extérieur
      • crashed - Processus s'est planté
      • oom - Le processus est tombé à cours de mémoire
      • launch-failed - Le processus n'a pu se lancer avec succès
      • integrity-failure - Les vérifications d'intégrité du code Windows ont échouées
    • exitCode number - Le code de sortie du processus (cad: l'état de waitpid sur posix, de GetExitCodeProcess sur Windows).
    • serviceName string (facultatif) - Le nom non localisé du processus.
    • name string (facultatif) : nom du processus. Exemples pour l'utilitaire : Audio Service, Content Decryption Module Service, Network Service, Video Capture, etc.

Émis lorsque le processus enfant disparaît de façon inattendue. C'est normalement dans les cas où il s'est planté ou qu'il a été tué. Cela n'inclut pas le processus de rendu.

Événement : 'accessibility-support-changed' macOS Windows

Retourne :

  • event Event
  • accessibilitySupportEnabled boolean - true quand le support de l'accessibilité de Chrome est activé, sinon false.

Émis lorsque le support de l’accessibilité du Chrome change. Cet événement se déclenche lorsque les technologies d’assistance, tels que les lecteurs d’écran sont activés ou désactivés. Voir https://www.chromium.org/developers/design-documents/accessibility pour plus de détails.

Évènement : 'session-created'

Retourne :

Émis lorsque Electron vient de créer une nouvelle session.

const { app } = require('electron')

app.on('session-created', (session) => {
console.log(session)
})

Évènement : 'second-instance'

Retourne :

  • event Event
  • argv string[] - un tableau d’arguments de la ligne de commande de la deuxième instance
  • workingDirectory string - Le répertoire de travail de la seconde instance
  • additionalData unknown- Objet JSON des données supplémentaires transmises par la deuxième instance

Cet événement sera émis dans l'instance principale de votre application quand une seconde instance a été exécutée et appelle app.requestSingleInstanceLock().

argv est un tableau des arguments de la ligne de commande de la seconde instance, et workingDirectory est son répertoire de travail actuel. Les applications répondent habituellement à cela en faisant de leur fenêtre principale, une fenêtre centrée et non réduite au minimum.

Note: Si la seconde instance a été lancée par un utilisateur différent du premier, le tableau argv ne va pas inclure les arguments.

L'émission de cet évènement est garantie si elle suit celle de l'évènement ready de app.

Note: Des arguments de ligne de commande supplémentaires peuvent être rajoutés par Chromium, tels que --original-process-start-time.

Méthodes

L'objet app dispose des méthodes suivantes :

Note: Certaines méthodes sont spécifiques à certains systèmes d'exploitation et étiquetés comme telles.

app.quit()

Essayez de fermer toutes les fenêtres. L’événement before-quit sera émis d’abord. Si toutes les fenêtres sont fermées avec succès, l’événement will-quit sera émis et mettra fin à l’application par défaut.

Cette méthode garantit que tous les écouteurs d’événements de beforeunload et unload seront correctement exécutées. Il est possible qu’une fenêtre annule la fermeture en retournant false dans l'écouteur d’événement beforeunload.

app.exit([exitCode])

  • exitCode Integer (facultatif)

Sort immédiatement avec exitCode. exitCode est par défaut à 0.

Toutes les fenêtres seront immédiatement fermées sans interroger l'utilisateur, et les événements before-quit et will-quit ne seront pas émis.

app.relaunch([options])

  • options Object (facultatif)
    • args string[] - (facultatif)
    • execPath string (facultatif)

Relance l’application lorsque l’instance en cours se termine.

Par défaut, la nouvelle instance utilisera le même répertoire de travail et les mêmes arguments de la ligne de commande que ceux de l'instance actuelle. Si args est spécifié, args sera passé comme argument de ligne de commande à la place. Lorsque execPath est spécifié, execPath sera exécuté pour redémarrer à la de l’application actuelle.

Notez bien que cette méthode ne ferme pas l'application, vous devez appeler app.quit ou app.exit après avoir appelé app.relaunch pour faire redémarrer votre application.

Quand app.relaunch est appelé plusieurs fois, plusieurs instances vont être appelées après que l'instance actuelle soit fermée.

Voici un exemple qui redémarre une nouvelle instance immédiatement en ajoutant un nouvel argument de ligne de commande à la nouvelle instance :

const { app } = require('electron') app.relaunch({ args: process.argv.slice(1).concat(['--relaunch']) }) app.exit(0)

app.isReady()

Retourne boolean - true si Electron a fini de s'initialiser sinon, false. Voir également app.whenReady().

app.whenReady()

Returns Promise<void> - résolue quand Electron est initialisé. Peut être utilisé comme une alternative pratique à la vérification de app.isReady() et à l’abonnement à l’événement ready si l’application n’est pas encore prête.

app.focus([options])

  • options Object (facultatif)
    • steal boolean macOS - Fait du récepteur l’application active même si une autre application l'est déja.

Sous Linux, donne le focus à la première fenêtre visible. Sur macOS, fait de l'application l'application active. Sous Windows, donne le focus à la première fenêtre de l'application.

L'option steal doit être utilisée avec parcimonie.

app.hide() macOS

Masque toutes les fenêtres de l'application sans les minimiser.

app.isHidden() macOS

Retourne boolean - true si l’application, y compris toutes ses fenêtres, est masquée (par exemple avec Command-H), false dans le cas contraire.

app.show() macOS

Affiche les fenêtres de l'application après qu'elles aient été occultées. Cela ne leur donne pas automatiquement le focus.

app.setAppLogsPath([path])

  • path string (facultatif) - Chemin personnalisé pour vos logs. Il doit être absolu.

Définit ou crée un répertoire de log pouvant être manipulé par app.getPath() ou app.setPath(pathName, newPath).

L'appel à app.setAppLogsPath() sans paramètre path définira ce répertoire comme étant ~/Library/Logs/YourAppName sur macOS et userData sur Linux et Windows.

app.getAppPath()

Retourne string - Répertoire courant de l'application.

app.getPath(name)

  • name string - Vous pouvez demander les chemins suivants par leur nom:
    • home Répertoire de base de l’utilisateur.
    • appData Répertoire de données d'utilisateur de l'application, pointant par défaut sur:
      • %APPDATA% sur Windows
      • $XDG_CONFIG_HOME ou ~/.config sur Linux
      • ~/Library/Application Support sur macOS
    • userData Répertoire de stockage des fichiers de configuration de votre application, qui par défaut, est le répertoire appData joint au nom de votre application. Par convention les fichiers stockant des données utilisateur doivent être disposés dans ce répertoire, et il n’est pas recommandé d'y écrire des fichiers trop volumineux car certains environnements peuvent sauvegarder ce répertoire sur le stockage cloud.
    • sessionData Répertoire de stockage des données générées par Session, telles que localStorage, cookies, cache disque, dictionnaires téléchargés, état réseau, fichiers devtools. Par défaut, pointe sur userData. Chromium peut y stocker un très grand cache disque, donc si votre application ne s’appuie pas sur le stockage du navigateur tel lStorage ou les cookies pour enregistrer les données utilisateur, il est recommandé de définir ce répertoire à d’autres emplacements pour éviter de polluer le répertoire userData .
    • temp Dossier temporaire.
    • exe Le fichier exécutable actuel.
    • module La bibliothèque libchromiumcontent.
    • desktop Le dossier du Bureau de l’utilisateur actuel.
    • documents Dossier "Mes Documents" de l'utilisateur.
    • downloads Dossier pour les téléchargements de l’utilisateur.
    • music Dossier de musique de l’utilisateur.
    • pictures Dossier des images de l’utilisateur.
    • videos Dossier des vidéos de l’utilisateur.
    • recent Dossier des fichiers récents de l'utilisateur (Windows seulement).
    • logs Répertoire du dossier de log de votre application.
    • crashDumps Dossier où les rapports d'incidents sont stockés.

Retourne string - Un chemin vers le répertoire spécial ou le fichier associé à name. En cas d'échec, une Error sera levée.

Si app.getPath('logs') est appelé sans que app.setAppLogsPath() ne soit d'abord appelé, un répertoire de logs par défaut sera créé équivalent à un appel app.setAppLogsPath() sans paramètre path.

app.getFileIcon(path[, options])

  • path string
  • options Object (facultatif)
    • size string
      • small - 16x16
      • normal - 32x32
      • large - 48x48 sur Linux, 32x32 sur Windows et non pris en charge sur macOS.

Retourne Promise<NativeImage> - rempli avec l'icône de l'application, qui est une NativeImage.

Récupère une icône associée à un chemin.

Sur Windows, il y a 2 types d'icônes :

  • Icônes associées à certaines extensions de fichier, comme .mp3, .png, etc.
  • Icônes à l’intérieur du fichier lui-même, comme les .exe, .dll, .ico.

Sur Linux et macOS, les icônes dépendent de l'application associée au type Mime de fichier.

app.setPath(name, path)

  • name string
  • path string

Remplace le chemin path par un répertoire spécial ou un fichier associé à name. Si le chemin spécifie un répertoire qui n'existe pas, une Erreur est levée. Dans ce cas, le répertoire doit être créé avec fs.mkdirSync ou similaire.

Vous pouvez remplacer uniquement les chemins d’un name défini dans app.getPath.

Par défaut, les cookies et la cache des pages web seront stockés dans le répertoire sessionData. Si vous voulez changer cet emplacement, vous devez remplacer le chemin sessionData avant que l'événement ready du module app soit émis.

app.getVersion()

Retourne string - La version de l'application chargée. Si aucune version n'est trouvée dans le fichier package.json de l'application, la version du bundle courant ou de l'exécutable est renvoyée.

app.getName()

Retourne string - Le nom de l'application, qui figure dans le fichier package.json .

Habituellement, le champ name de package.json est un nom court en minuscule, selon la spécification des modules npm. Vous devriez dans la plupart des cas renseigner également un champ productName, qui contient le nom complet et capitalisé de votre application, et qui sera préféré à name par Electron.

app.setName(name)

  • name string

Remplace le nom de l'application actuelle.

Note: Cette fonction remplace le nom utilisé en interne par Electron; elle n'affecte pas le nom utilisé par l'OS.

app.getLocale()

Renvoie string - Les paramètres régionaux actuels de l'application, récupérés à l'aide de la librairie l10n_util de Chromium. Les valeurs de retour possibles sont documentées ici.

Pour définir les paramètres régionaux, vous devez utiliser un commutateur de ligne de commande au démarrage de l’application, qui peut être trouvé <ici.

Note: Lors de la distribution de votre application packagée, vous devez également expédier le dossier locales .

Note : Cette API doit être appelée après l'émission de l'événement ready.

Note: To see example return values of this API compared to other locale and language APIs, see app.getPreferredSystemLanguages().

app.getLocaleCountryCode()

Returns string - User operating system's locale two-letter ISO 3166 country code. La valeur est tirée des API natives d'OS.

Note: Quand il est impossible de détecter le code du pays de la localisation, le retour est une chaîne vide.

app.getSystemLocale()

Retourne string - Locale actuelle du système. Sous Windows et Linux, elle est récupérée à l'aide de la bibliothèque i18n de Chromium. On macOS, [NSLocale currentLocale] is used instead. To get the user's current system language, which is not always the same as the locale, it is better to use app.getPreferredSystemLanguages().

Different operating systems also use the regional data differently:

  • Windows 11 uses the regional format for numbers, dates, and times.
  • macOS Monterey uses the region for formatting numbers, dates, times, and for selecting the currency symbol to use.

Therefore, this API can be used for purposes such as choosing a format for rendering dates and times in a calendar app, especially when the developer wants the format to be consistent with the OS.

Note : Cette API doit être appelée après l'émission de l'événement ready.

Note: To see example return values of this API compared to other locale and language APIs, see app.getPreferredSystemLanguages().

app.getPreferredSystemLanguages()

Returns string[] - The user's preferred system languages from most preferred to least preferred, including the country codes if applicable. A user can modify and add to this list on Windows or macOS through the Language and Region settings.

The API uses GlobalizationPreferences (with a fallback to GetSystemPreferredUILanguages) on Windows, \[NSLocale preferredLanguages\] on macOS, and g_get_language_names on Linux.

This API can be used for purposes such as deciding what language to present the application in.

Here are some examples of return values of the various language and locale APIs with different configurations:

  • For Windows, where the application locale is German, the regional format is Finnish (Finland), and the preferred system languages from most to least preferred are French (Canada), English (US), Simplified Chinese (China), Finnish, and Spanish (Latin America):
    • app.getLocale() returns 'de'
    • app.getSystemLocale() returns 'fi-FI'
    • app.getPreferredSystemLanguages() returns ['fr-CA', 'en-US', 'zh-Hans-CN', 'fi', 'es-419']
  • On macOS, where the application locale is German, the region is Finland, and the preferred system languages from most to least preferred are French (Canada), English (US), Simplified Chinese, and Spanish (Latin America):
    • app.getLocale() returns 'de'
    • app.getSystemLocale() returns 'fr-FI'
    • app.getPreferredSystemLanguages() returns ['fr-CA', 'en-US', 'zh-Hans-FI', 'es-419']

Both the available languages and regions and the possible return values differ between the two operating systems.

As can be seen with the example above, on Windows, it is possible that a preferred system language has no country code, and that one of the preferred system languages corresponds with the language used for the regional format. On macOS, the region serves more as a default country code: the user doesn't need to have Finnish as a preferred language to use Finland as the region,and the country code FI is used as the country code for preferred system languages that do not have associated countries in the language name.

app.addRecentDocument(path) macOS Windows

  • path string

Ajoute le path à la liste des documents récents.

Cette liste est gérée par l'OS. Sous Windows, vous pouvez parcourir la liste à partir de la barre des tâches et sur macOS à partir du menu du dock.

app.clearRecentDocuments() macOS Windows

Efface la liste des documents récents.

app.setAsDefaultProtocolClient(protocol[, path, args])

  • protocol string - Le nom de votre protocole, sans le préfixe ://. Par exemple, si vous souhaitez que votre application gère les liens electron://, appelez cette méthode avec electron comme paramètre.
  • path string (facultatif) Windows -Chemin vers l'exécutable d'Electron. Par défaut process.execPath
  • args string[] (facultatif) Windows - Arguments transmis à l'exécutable. Par défaut, un tableau vide

Returns boolean - Si l'appel a réussi.

Définit l'exécutable courant comme gestionnaire par défaut pour un protocole (alias le schéma URI). Il vous permet d'intégrer votre application plus profondément dans le système d'exploitation. Une fois enregistré, tous les liens avec votre-protocole:// seront ouverts avec l'exécutable courant. L'ensemble du lien, y compris le protocole, sera transmis à votre application comme paramètre.

Remarque: Sur macOS, vous ne pouvez enregistrer que les protocoles qui ont été ajoutés à votre application info.plist, qui ne peut pas être modifié au moment de l'exécution. Cependant, vous pouvez changer le fichier pendant la construction via Electron Forge, Electron Packager, ou en modifiant info.plist avec un éditeur de texte. Veuillez vous référer à la documentation d'Apple pour plus de détails.

Remarque : Dans un environnement Windows Store (lorsque empaqueté en tant qu'appx) cette API retournera true pour tous les appels, mais la clé de registre qu'elle définit ne sera pas accessible par d'autres applications. Afin d'enregistrer votre application Windows Store comme gestionnaire de protocole par défaut, vous devez déclarer le protocole dans votre manifest.

L'API utilise le registre Windows et LSSetDefaultHandlerForURLScheme en interne.

app.removeAsDefaultProtocolClient(protocol[, path, args]) macOS Windows

  • protocol string - Le nom de votre protocole, sans le préfixe ://.
  • path string (facultatif) Windows - process.execPath par défaut
  • args string[] (facultatif) Windows - Un tableau vide par défaut

Returns boolean - Si l'appel a réussi.

Cette méthode vérifie si l'exécutable courant est le gestionnaire par défaut pour un protocole (aka le schéma URI). Si c'est le cas, cela supprimera l'application comme gestionnaire par défaut.

app.isDefaultProtocolClient(protocol[, path, args])

  • protocol string - Le nom de votre protocole, sans le préfixe ://.
  • path string (facultatif) Windows - process.execPath par défaut
  • args string[] (facultatif) Windows - Un tableau vide par défaut

Retourne boolean - Si l'exécutable actuel et le gestionnaire par défaut d'un protocole (schéma URI).

Remarque: Sur macOS, vous pouvez utiliser cette méthode pour vérifier si l'application a bien été enregistré comme gestionnaire de protocole par défaut pour un protocole. Vous pouvez également confirmer cela en vérifiant ~/Library/Preferences/com.apple.LaunchServices.plist sur votre machine macOS. Veuillez vous référer à la documentation d'Apple pour plus de détails.

L'API utilise le registre Windows et LSCopyDefaultHandlerForURLScheme en interne.

app.getApplicationNameForProtocol(url)

  • url string - une URL avec le nom du protocole à vérifier. Contrairement aux autre méthodes de cette famille, celle-ci accepte un URL en entier, y compris :// au minimum (par exemple : https://).

Retourne string - Nom de l'application qui gère le protocole, ou un <0>String</0> vide s'il n'y a pas de gestionnaire. Par exemple, si Electron est le gestionnaire par défaut de l'URL, il pourrait s'agit de Electron sur Windows et Mac. Par contre, ne vous fiez pas au format précis qui ne garantit pas de ne pas changer. Attendez-vous à un format différent sur Linux, probablement avec un préfixe .desktop.

Cette méthode retourne le nom de l'application du gestionnaire par défaut pour le protocole d'une URL (schéma d'URI).

app.getApplicationInfoForProtocol(url) macOS Windows

  • url string - une URL avec le nom du protocole à vérifier. Contrairement aux autre méthodes de cette famille, celle-ci accepte un URL en entier, y compris :// au minimum (par exemple : https://).

Retourne Promise<Object> - Se résout avec un objet contenant les éléments suivants :

  • icon NativeImage - l’icône d’affichage de l’application qui gère le protocole.
  • path string - chemin d’installation de l’application qui gère le protocole.
  • name string - nom complet de l’application qui gère le protocole.

Cette méthode retourne une promesse qui contient le nom de l'application, l'icone et le chemin du gestionnaire par défaut pour le protocole (aka le schéma URI) d'une URL.

app.setUserTasks(tasks) Windows

  • tasks Task[] - Tableau d'objets Task

Ajoute tasks à la catégorie Tasks de la Jumplist sur Windows.

tasks est un tableau d’objets Task.

Returns boolean - Si l'appel a réussi.

Remarque : Si vous souhaitez personnaliser encore plus la JumpList, utilisez app.setJumpList(categories) à la place.

app.getJumpListSettings() Windows

Retourne Object:

  • minItems Integer - Le nombre minimum d'éléments qui seront affichés dans la JumpList (pour une description plus détaillée de cette valeur, voir les documentations MSDN).
  • removedItems JumpListItem[] - Tableau des objets JumpListItem qui correspondent aux éléments que l'utilisateur a explicitement retirés des catégories personnalisées dans la liste de saut de . Ces éléments ne doivent pas être ajoutés de nouveau à la JumpList dans l'appel suivant à app.setJumpList(), Windows n'affichera aucune catégorie personnalisée qui contient les éléments supprimés.

app.setJumpList(categories) Windows

Retourne string

Définit ou supprime une JumpList personnalisée pour l'application et renvoie l'une des chaînes de caractères suivantes :

  • ok - Tout s'est bien passé.
  • error - Une ou plusieurs erreurs se sont produites, activez la journalisation de la durée d'exécution pour déterminer la cause probable.
  • invalidSeparatorError - Une tentative a été faite pour ajouter un séparateur à une catégorie personnalisée dans la de la ligne de commande. Les séparateurs ne sont autorisés que dans la catégorie standard Tasks.
  • fileTypeRegistrationError - Tentative d'ajout d'un lien de fichier dans la JumpList pour un type de fichier que l'application n'est pas enregistrée pour gérer.
  • customCategoryAccessDeniedError - Les catégories personnalisées ne peuvent pas être ajoutées à la JumpList en raison de la confidentialité de l'utilisateur ou des paramètres de politique de groupe.

Si cetagories est null, la JumpList personnalisée précédemment définie (si existante) sera remplacée par la JumpList standard de l'application (gérée par Windows).

Remarque : Si un objet JumpListCategory n'a ni de type ni de propriété name définie le type est donc supposé être tasks. Si la propriété name est définie mais que le type est omis, alors le type est assumé être custom.

Remarque : Les utilisateurs peuvent supprimer des éléments des catégories personnalisées, et Windows n'autorisera pas l'ajout d'un élément supprimé dans une catégorie personnalisée avant le prochain appel réussi à app.setJumpList(categories). Toute tentative de réajouter un élément supprimé à une catégorie personnalisée plus tôt, cela entraînera l'omission de toute la catégorie personnalisée dans la JumpList. La liste des éléments supprimés peut être obtenue à l'aide de app.getJumpListSettings().

Remarque: La longueur maximale de la propriété description d’un élément d'une JumpList est de 260 caractères. Au-delà de cette limite, l'élément ne sera ni ajouté à la liste ni affiché.

Voici un exemple très simple de la création d'une JumpList personnalisé :

const { app } = require('electron')

app.setJumpList([
{
type: 'custom',
name: 'Recent Projects',
items: [
{ type: 'file', path: 'C:\\Projects\\project1.proj' },
{ type: 'file', path: 'C:\\Projects\\project2.proj' }
]
},
{ // has a name so `type` is assumed to be "custom"
name: 'Tools',
items: [
{
type: 'task',
title: 'Tool A',
program: process.execPath,
args: '--run-tool-a',
icon: process.execPath,
iconIndex: 0,
description: 'Runs Tool A'
},
{
type: 'task',
title: 'Tool B',
program: process.execPath,
args: '--run-tool-b',
icon: process.execPath,
iconIndex: 0,
description: 'Runs Tool B'
}
]
},
{ type: 'frequent' },
{ // has no name and no type so `type` is assumed to be "tasks"
items: [
{
type: 'task',
title: 'New Project',
program: process.execPath,
args: '--new-project',
description: 'Create a new project.'
},
{ type: 'separator' },
{
type: 'task',
title: 'Recover Project',
program: process.execPath,
args: '--recover-project',
description: 'Recover Project'
}
]
}
])

app.requestSingleInstanceLock([additionalData])

  • additionalData Record<any, any> (facultatif) - Un objet JSON contenant des données supplémentaires à envoyer à la première instance.

Retourne boolean

La valeur renvoyée par cette méthode indique si cette instance de votre application a obtenu le verrou ou non. Si elle n'a pas réussi à obtenir le verrou vous pouvez supposer qu'une autre instance de votre application est déjà en cours d'exécution avec le verrou et sortir immédiatement.

I.e. Cette méthode renvoie true si votre processus est l’instance principale de votre application et que votre application doit continuer à se charger. Elle renvoie false si votre process devrait quitter immédiatement, puisqu'il a envoyé ses paramètres à une instance qui possède déjà le verrou.

Sur macOS, le système impose automatiquement une instance unique lorsque les utilisateurs essaient d'ouvrir une seconde instance de votre application dans Finder, et les événements open-file et open-url seront émis pour cela. Cependant, lorsque les utilisateurs démarrent votre application en ligne de commande , le mécanisme d'instance unique du système sera contourné, et vous devez utiliser cette méthode pour assurer une seule instance.

Un exemple d'activation de la fenêtre de l'instance primaire lorsqu'une seconde instance démarre :

const { app } = require('electron')
let myWindow = null

const additionalData = { myKey: 'myValue' }
const gotTheLock = app.requestSingleInstanceLock(additionalData)

if (!gotTheLock) {
app.quit()
} else {
app.on('second-instance', (event, commandLine, workingDirectory, additionalData) => {
// Print out data received from the second instance.
console.log(additionalData)

// Quelqu'un a essayé d'exécuter une seconde instance vous devez donner le focus à notre fenêtre.
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore()
myWindow.focus()
}
})

// Créer myWindow, charger le reste de l'app, etc...
app.whenReady().then(() => {
myWindow = createWindow()
})
}

app.hasSingleInstanceLock()

Retourne boolean

Cette méthode retourne un booléen indiquant si cette instance de votre application détient actuellement le verrou d'instance unique. Vous pouvez demander le verrou avec app.requestSingleInstanceLock() et le débloquer avec app.releaseSingleInstanceLock()

app.releaseSingleInstanceLock()

Libère tous les verrous créés par requestSingleInstanceLock. Cela permettra plusieurs instances de l’application de s’exécuter côte à côte de nouveau .

app.setUserActivity(type, userInfo[, webpageURL]) macOS

  • type string - Identifie de façon unique l'activité. Mappé sur NSUserActivity.activityType.
  • userInfo n'importe quel - état spécifique à l'application à stocker pour utilisation par un autre appareil.
  • webpageURL string(facultatif) - La page Web à charger dans un navigateur si aucune application appropriée n’est installée sur l’appareil de reprise. Le schéma doit être http ou https.

Créée un NSUserActivity et le défini en tant qu'activité courante. Après cela, l'activité devient éligible à la fonction Handoff sur l'autre périphérique.

app.getCurrentActivityType() macOS

Retourne string - le type de l’activité en cours d’exécution.

app.invalidateCurrentActivity() macOS

Invalide l'activité Handoff courante de l'utilisateur.

app.resignCurrentActivity() macOS

Marque l'activité actuelle de l'utilisateur Handoff comme inactive sans l'invalider.

app.updateCurrentActivity(type, userInfo) macOS

  • type string - Identifie de façon unique l'activité. Mappé sur NSUserActivity.activityType.
  • userInfo n'importe quel - état spécifique à l'application à stocker pour utilisation par un autre appareil.

Modifie l'activité en cours si son type correspond à type, en fusionnant les entrées de userInfo dans son dictionnaire userInfo courant.

app.setAppUserModelId(id) Windows

  • id string

Change le Application User Model ID à id.

app.setActivationPolicy(policy) macOS

  • policy string - Peut prendre comme valeur 'regular', 'accessory' ou 'prohibited'.

Définit la stratégie d’activation pour une application donnée.

Types de stratégie d’activation :

  • 'regular' - L’application est une application ordinaire qui apparaît dans le Dock et peut avoir une interface utilisateur.
  • 'accessory' - L’application n’apparaît pas dans le Dock et n’a pas de barre de menus, mais elle peut être activée par programme ou en cliquant sur l’une de ses fenêtres.
  • 'prohibied' - L'application n'apparaît pas dans le Dock et ne peut pas créer de fenêtres ou être activée.

app.importCertificate(options, callback) Linux

  • Objet options
    • certificate string - Chemin pour le fichier pkcs12.
    • password string - La Passphrase pour le certificat.
  • callback Function
    • result Integer - Résultat de l'importation.

Importe le certificat au format pkcs12 dans l'entrepôt de certificats de la plateforme. callback est appelé avec le retour result de l'opération d'import, une valeur 0 indique un succès alors que toute autre valeur signale un problème, telle que décrite par la net_error_list de Chromium.

app.configureHostResolver(options)

  • Objet options
    • enableBuiltInResolver boolean (facultatif) - Indique si le résolveur d'hôte intégré est utilisé de préférence à getaddrinfo. Lorsque cette option est activée, le résolveur intégré tentera d'utiliser les paramètres DNS du système pour faire lui même des recherches DNS. Activé par défaut sur macOS, désactivé par défaut sur Windows et Linux.
    • secureDnsMode string (facultatif) - Peut être "off", "automatic" ou "secure". Configure le mode DNS-overHTTP. Si égal à "off", aucune recherche DoH ne sera effectuée . Si c'est "automatic, les recherches DoH seront effectués en premier si le DoH est disponible et les recherches DNS non sécurisés seront exécutés en tant que repli. Et lorsque la valeur est "sécure", seules les recherches DoH seront effectuées. Par défaut le mode est à , "automatic".
    • secureDnsServers string[] (facultatif) : liste des modèles de serveur DNS-over-HTTP . Voir RFC8484 § 3 pour plus de détails sur le format du modèle. La plupart des serveurs prennent en charge la méthode POST ; le modèle pour ces serveurs est simplement une URI. Notez que pour certains fournisseurs DNS, le résolveur sera automatiquement mis à niveau vers DoH, sauf si DoH est explicitement désactivé, et même s’il n’y a pas de serveur DoH fourni dans cette liste.
    • enableAdditionalDnsQueryTypes booléen (facultatif) - Contrôle si des types de requête DNS supplémentaires, par exemple HTTPS (type DNS 65) sont autorisés en plus des requêtes A et AAAA traditionnelles lorsqu’une demande est effectuée via un DNS non sécurisé. N’a aucun effet sur Secure DNS qui accepte toujours des types supplémentaires. La valeur par défaut est true.

Configure la résolution de l’hôte (DNS et DNS-over-HTTPS). Par défaut, les résolveurs suivants seront utilisés, dans cet ordre :

  1. DNS-over-HTTPS, si le fournisseur DNS le prend en charge, puis
  2. le résolveur intégré (activé sur macOS uniquement par défaut), puis
  3. le résolveur du système (p. ex. getaddrinfo).

Cela peut être configuré pour restreindre l’utilisation de DNS non chiffrés (secureDnsMode: "secure"), ou désactiver DNS-over-HTTPS (secureDnsMode: « off »). Il est également possible d’activer ou de désactiver le résolveur intégré.

Pour désactiver le DNS non sécurisé, vous pouvez spécifier un secureDnsMode de "secure". Si vous procédez ainsi , vous devez vous assurer de fournir une liste de serveurs DNS-over-HTTPS à utiliser, dans le cas où la configuration DNS de l’utilisateur n’inclut pas un fournisseur qui prend en charge DoH.

app.configureHostResolver({
secureDnsMode: 'secure',
secureDnsServers: [
'https://cloudflare-dns.com/dns-query'
]
})

Cette API doit être appelée après l'émission de l'événement ready .

app.disableHardwareAcceleration()

Désactive l'accélération matérielle pour l'application courante.

Cette méthode peut seulement être appelée avant que app soit prêt.

app.disableDomainBlockingFor3DAPIs()

Par défaut, Chromium désactive les API 3D (par exemple WebGL) jusqu’au redémarrage par domaine si les processus GPU se bloquent trop fréquemment. Cette fonction désactive ce comportement.

Cette méthode peut seulement être appelée avant que app soit prêt.

app.getAppMetrics()

Retourne ProcessMetric[] : Tableau d'objets ProcessMetric correspondant aux statistiques d'utilisation de la mémoire et du processeur de tous les processus associés à l'application.

app.getGPUFeatureStatus()

Returns GPUFeatureStatus - L'état des fonctions graphiques de chrome://gpu/.

Remarque : Cette information n'est utilisable qu'après l'émission de l'événement gpu-info-update.

app.getGPUInfo(infoType)

  • infoType string - Peut être basic ou complete.

Retourne Promise<unknown>

Si infoType vaut complete : La Promise est remplie avec Object contenant toutes les informations sur le GPU, comme pour l'objet GPUInfo de Chromium. Cela inclut les informations de version et driver montrées sur la page chrome://gpu.

Si infoType vaut basic : La Promise est remplie avec Object contenant moins d'attributs que si l'on utilise complete. Voilà un exemple de réponse basique :

{
auxAttributes:
{
amdSwitchable: true,
canSupportThreadedTextureMailbox: false,
directComposition: false,
directRendering: true,
glResetNotificationStrategy: 0,
inProcessGpu: true,
initializationTime: 0,
jpegDecodeAcceleratorSupported: false,
optimus: false,
passthroughCmdDecoder: false,
sandboxed: false,
softwareRendering: false,
supportsOverlays: false,
videoDecodeAcceleratorFlags: 0
},
gpuDevice:
[{ active: true, deviceId: 26657, vendorId: 4098 },
{ active: false, deviceId: 3366, vendorId: 32902 }],
machineModelName: 'MacBookPro',
machineModelVersion: '11.5'
}

L'utilisation de basic sera à privilégier lorsque seules les informations de base comme vendorId ou deviceId sont nécessaires.

app.setBadgeCount([count]) Linux macOS

  • count Integer (facultatif) - Si une valeur est fournie, le badge prend celle-ci, sinon, sur macOS, cela affiche un point blanc (e. . nombre de notifications inconnu). Sous Linux, si aucune valeur n'est fournie, le badge ne s'affichera pas.

Returns boolean - Si l'appel a réussi.

Définit le badge de compteur pour l'application actuelle. Définir le nombre à 0 masquera le badge .

Sur macOS, il s'affiche sur l'icône du dock. Sous Linux, il ne fonctionne que pour le lanceur Unity.

Remarque : Le lanceur Unity nécessite un fichier .desktop pour fonctionner. Pour plus d’informations, lisez la documentation d’intégration Unity.

app.getBadgeCount() Linux macOS

Retourne Integer - La valeur actuelle affichée sur le badge du compteur.

app.isUnityRunning() Linux

Retourne boolean - Si l'environnement de bureau actuel est Unity launcher.

app.getLoginItemSettings([options]) macOS Windows

  • options Object (facultatif)
    • path string (facultatif) Windows - Le chemin de l'exécutable à comparer. process.execPath par défaut.
    • args string (facultatif) Windows - Les argumensts de la ligne de commande à comparer. Par défaut, un tableau vide.

Si vous avez fourni des options path et args à app.setLoginItemSettings, vous devez passer les mêmes arguments ici pour que openAtLogin soit défini correctement.

Retourne Object:

  • openAtLogin boolean - true si l'application est configurée pour démarrer à l'ouverture de session.
  • openAsHidden boolean macOS - true si l'application est configurée pour s'ouvrir comme cachée à l'ouverture de session. Ce paramètre n'est pas disponible sur les MAS builds.
  • wasOpenedAtLogin boolean macOS - true si l'application est automatiquement ouverte à l'ouverture de session. Ce paramètre n'est pas disponible sur les MAS builds.
  • wasOpenedAsHidden boolean macOS - true si l'application est ouverte comme un programme caché à l'ouverture de session. Cela indique que l'application ne devrait pas ouvrir la moindre fenêtre au démarrage. Ce paramètre n'est pas disponible sur les MAS builds.
  • restoreState boolean macOS - true si l'application est ouverte comme un programme qui devrait restaurer l'état de la session précédente à l'ouverture de session. Cela indique que l'application devrait restaurer les fenêtres qui étaient ouvertes lorsque celle-ci a été précédemment fermée. Ce paramètre n'est pas disponible sur les MAS builds.
  • executableWillLaunchAtLogin boolean Windows - true si l’application est configurée pour s’ouvrir à la connexion et que sa clé d’exécution n’est pas désactivée. Ceci diffère de openAtLogin car il ignore l’option args , cette propriété sera true si l’exécutable donné est lancé lors de la connexion avec n'importe quels arguments.
  • launchItems Object[] Windows
    • name chaîne Windows - nom d’une entrée de Registre.
    • path stringWindows : exécutable d’une application qui correspond à une entrée de Registre.
    • args string[] Windows - les arguments de ligne de commande à transmettre à l’exécutable.
    • scope chaîne Windows - soit user soit machine. Indique si l’entrée de Registre est sous HKEY_CURRENT USER ou HKEY_LOCAL_MACHINE.
    • enabled booléen Windows - true si la clé de Registre de l’application est approuvée au démarrage et s’affiche donc comme enabled dans le Gestionnaire des tâches et les paramètres Windows.

app.setLoginItemSettings(settings) macOS Windows

  • settings Object
    • openAtLogin booléen (facultatif) - true pour ouvrir l’application lors de la connexion, false pour supprimer l’application en tant qu’élément de connexion. Par défaut, faux.
    • openAsHidden boolean (facultatif) macOS - true pour ouvrir l’application comme cachée. false par défaut. L'utilisateur peut éditer ce paramètre depuis les Préférences Système, alors app.getLoginItemSettings().wasOpenedAsHidden va être vérifié lorsque l'app sera ouverte pour connaître la valeur actuelle. Ce paramètre n'est pas disponible sur les MAS builds.
    • path string (facultatif) Windows - L'exécutable à lancer à la connexion. process.execPath par défaut.
    • args string[] (facultatif) Windows - Arguments de ligne de commande à transmettre à l’exécutable. Par défaut, un tableau vide. Prenez soin d’envelopper les chemins dans des guillemets.
    • enabled booléen (facultatif) Windows - true modifiera la clé de Registre approuvée au démarrage et valide/ invalide l’application dans le Gestionnaire des tâches et les paramètres Windows. Par défaut, true.
    • name string (facultatif) Windows - nom de la valeur à écrire dans le registre. La valeur par défaut est l'AppUserModelId() de l’application. Configurer les paramètres de l'application lors de l'ouverture de session.

Pour fonctionner avec autoUpdater d'Electron sur Windows, qui utilise Squirrel, vous aurez besoin de configurer le chemin de démarrage de Update.exe et de lui passer les arguments qui définissent le nom de votre application. Par exemple :

const appFolder = path.dirname(process.execPath)
const updateExe = path.resolve(appFolder, '..', 'Update.exe')
const exeName = path.basename(process.execPath)

app.setLoginItemSettings({
openAtLogin: true,
path: updateExe,
args: [
'--processStart', `"${exeName}"`,
'--process-start-args', `"--hidden"`
]
})

app.isAccessibilitySupportEnabled() macOS Windows

Retourne boolean - true si le support des fonctionnalités d'accessibilité de Chrome est activé, false sinon. Cette API retournera true si les technologies d'assistance, comme les lecteurs d'écran, sont détectées. Voir https://www.chromium.org/developers/design-documents/accessibility pour de plus amples informations.

app.setAccessibilitySupportEnabled(enabled) macOS Windows

Active manuellement le support de l'accessibilité de Chrome, permettant de mettre à disposition des utilisateurs les commutateurs d'accessibilité dans les paramètres de l'application. Consultez les documents d'accessibilité de Chromium pour plus de détails. Désactivé par défaut.

Cette API doit être appelée après l'émission de l'événement ready .

Remarque : Le rendu de l'arborescence d'accessibilité peut affecter significativement les performances de votre application. Il ne doit pas être activé par défaut.

app.showAboutPanel()

Affichez les options du panneau À propos de l’application. Ces options peuvent être modifiées en utilisant app.setAboutPanelOptions(options).

app.setAboutPanelOptions(options)

  • Objet options
    • applicationName string (optional) - Nom de l'application.
    • applicationVersion string (optional) - Version de l'application.
    • copyright string (optional) - Information copyright.
    • version string (facultatif) macOS - Le numéro de version de l'application.
    • crédits string (facultatif) macOS Windows - Crédits.
    • auteurs string[] (facultatif) Linux - Liste des auteurs d'applications.
    • site web string (facultatif) Linux - Le site web de l'application.
    • iconPath string (facultatif) Linux Windows - Chemin vers l'icône de l'application au format de fichier JPEG ou PNG. Sous Linux, sera affiché en 64x64 pixels tout en conservant le ratio.

Configure les options de la fenêtre À propos de. Sous macOS, cela remplacera les valeurs définies dans le fichier .plist de l’application. Voir la documentation Apple pour de plus amples informations. Sous Linux, les valeurs doivent être définies pour être affichées ; il n'y a pas de valeurs par défaut.

Si vous ne définissez pas credits mais vous souhaitez quand même les afficher dans votre app, AppKit cherchera un fichier nommé "Credits.html", "Credits.rtf", et "Credits.rtfd", dans cet ordre, dans le bundle retourné par la méthode la classe main de NSBundle. Le premier fichier trouvé est utilisé, et si aucun n'est trouvé, la zone info est laissée vide. Consultez la documentation Apple pour plus d'informations.

app.isEmojiPanelSupported()

Retourne boolean - que la version actuelle de l'OS autorise ou non les sélecteurs natifs d'émojis.

app.showEmojiPanel() macOS Windows

Montrer le sélecteur d'émoji natif de la plateforme.

app.startAccessingSecurityScopedResource(bookmarkData) mas

  • bookmarkData string - Les données de marque-page encodées en base64 renvoyées par les méthodes dialog.showOpenDialogdialog.showSaveDialog.

Retourne Fonction - Cette fonction doit être appelée une fois que vous avez fini d'accéder au fichier de sécurité utilisé. If you do not remember to stop accessing the bookmark, kernel resources will be leaked and your app will lose its ability to reach outside the sandbox completely, until your app is restarted.

// Commence à accéder au fichier.
const stopAccessingSecurityScopedResource = app. tartAccessingSecurityScopedResource(data)
// Vous pouvez maintenant accéder au fichier en dehors du bac à sable 🎉

// N'oubliez pas d'arrêter d'accéder au fichier une fois que vous avez décidé de ne plus l'utiliser.
stopAccessingSecurityScopedResource()

Commencez à accéder à une ressource périmée de sécurité. Avec cette méthode, les applications Electron qui sont empaquetées pour le Mac App Store peuvent atteindre en dehors de leur sandbox pour accéder aux fichiers choisis par l'utilisateur. Voir la documentation de Apple pour une description du fonctionnement de ce système.

app.enableSandbox()

Active le mode "full sandbox" dans l'application. Cela signifie que tous les moteurs de rendu seront lancés en bac à sable, quelle que soit la valeur de l’indicateur sandbox dans WebPreferences.

Cette méthode peut seulement être appelée avant que app soit prêt.

app.isInApplicationsFolder() macOS

Retourne boolean - Si l'application est actuellement en cours d'exécution à partir du dossier d'applications du système . A utiliser en combinaison avec app.moveToApplicationsFolder()

app.moveToApplicationsFolder([options]) macOS

  • options Object (facultatif)
    • conflictHandler Function<boolean> (facultatif) - Un gestionnaire des conflits éventuels en cas d’échec de déplacement.
      • conflictType string - Le type de conflit de déplacement rencontré par le gestionnaire ; peut être exists ou existsAndRunning, où existe signifie qu'une application du même nom est présente dans le répertoire Applications et existsAndRunning signifie à la fois qu'elle existe et qu'elle est actuellement en cours d'exécution.

Retourne boolean - Si le déplacement a réussi. Veuillez noter que si le déplacement réussit, votre application se fermera et sera relancée.

Aucune boîte de dialogue de confirmation ne sera présentée par défaut. Si vous souhaitez que l’utilisateur confirme l’opération, vous pouvez le faire à l’aide de l’API dialog .

NOTE: Cette méthode renvoie des erreurs si quelque chose d'autre qu'une erreur utilisateur fait échouer le déplacement. Par exemple, si l'utilisateur annule la boîte de dialogue d'autorisation, cette méthode renvoie false. Si nous ne réussissons pas à effectuer la copie, alors cette méthode lancera une erreur. Le message contenu dans l'erreur devrait être suffisamment informatif pour que vous puissiez déterminer précisément quel est le problème.

Par défaut, si une application du même nom que celle qui a été déplacée existe dans le répertoire Applications et n' est pas en cours d'exécution, l'application existante sera mise à la corbeille et l'application active sera déplacée à sa place. Si elle est en cours d'exécution, l'application en cours préexistante prendra le focus et l'application précédemment active se fermera. Ce comportement peut être modifié en fournissant le gestionnaire de conflits facultatif, où le booléen retourné par le gestionnaire détermine si le conflit de déplacement est résolu avec le comportement par défaut. c'est-à-dire que retourner false ne garantira aucune action supplémentaire, retourner true entraînera le comportement par défaut et la méthode continuera.

Par exemple :

app.moveToApplicationsFolder({
ConftHandler: (conflictType) => {
if (conflictType === 'exiss') {
dialogue de retour. howMessageBoxSync({
type: 'question',
boutons: ['Halter le déplacement', 'Continuer le déplacement'],
defaultId: 0,
message : 'Une application de ce nom existe déjà'
}) === 1
}
}
})

Cela signifierait que si une application existe déjà dans le répertoire de l'utilisateur, si l'utilisateur choisit de "Continuer le déplacement", alors la fonction continuera avec son comportement par défaut et l'application existante sera mise à la corbeille et l'application active sera déplacée à sa place.

app.isSecureKeyboardEntryEnabled() macOS

Retourne boolean - si Secure Keyboard Entry est activé.

Par défaut cette API retournera false.

app.setSecureKeyboardEntryEnabled(enabled) macOS

  • enabled booléen - Activer ou désactiver Secure Keyboard Entry

Définis si Secure Keyboard Entry est activée dans votre application.

En utilisant cette API, on peut éviter que des informations importantes telles que le mot de passe et d’autres informations sensibles soient interceptées par d’autres processus.

Consultez la documentation d’Apple pour plus détails.

Note: Activez Secure Keyboard Entry uniquement lorsque cela est nécessaire et désactivez-le quand il n'est plus nécessaire.

Propriétés

app.accessibilitySupportEnabled macOS Windows

Propriété de type boolean qui est true lorsque le support d'accessibilité de Chrome est activé et false si il ne l'est pas. Cette propriété sera true si l'utilisation de technologies d'assistance, telles que les lecteurs d'écran, a été détectée. Définir cette propriété à true active manuellement la prise en charge de l'accessibilité de Chrome, permettant aux développeurs d'exposer le basculement d'accessibilité aux utilisateurs dans les paramètres de l'application.

Voir la documentation sur l'accessibilité de Chromium pour plus de détails. Désactivé par défaut.

Cette API doit être appelée après l'émission de l'événement ready .

Remarque : Le rendu de l'arborescence d'accessibilité peut affecter significativement les performances de votre application. Il ne doit pas être activé par défaut.

app.applicationMenu

Une propriété Menu | null qui renvoie Menu si on a été défini et null autrement. Les utilisateurs peuvent passer un Menu pour définir cette propriété.

app.badgeCount Linux macOS

Propriété de type Integer qui retourne le nombre de badges pour l'application courante. Définir le nombre à 0 masquera le badge.

Sous macOS, paramétrer ceci avec n'importe quel entier non nul l'affichera sur l'icône du dock. Sous Linux, cette propriété ne fonctionne que pour le lanceur Unity.

Remarque : Le lanceur Unity nécessite un fichier .desktop pour fonctionner. Pour plus d’informations, lisez la documentation d’intégration Unity.

Remarque : Sous macOS, vous devez vous assurer que votre application a la permission d'afficher des notifications pour que cette propriété soit prise en compte.

app.commandLine Lecture seule

Un objet CommandLine qui vous permet de lire et de manipuler les arguments de ligne de commande que Chromium utilise.

app.dock macOS Readonly

Un objet Dock | undefined qui vous permet d'effectuer des actions sur l'icône de votre application dans le dock de l'utilisateur sous macOS.

app.isPackaged Lecture seule

Une propriété boolean qui renvoie true si l'application est packagée, false sinon. Pour de nombreuses applications, cette propriété peut être utilisée pour distinguer les environnements de développement et de production.

nom de l'application

Une propriété string qui indique le nom de l'application courante, qui est le nom dans le fichier package.json de l'application.

Habituellement, le champ name de package.json est un nom court en minuscule, selon la spécification des modules npm. Vous devriez dans la plupart des cas renseigner également un champ productName, qui contient le nom complet et capitalisé de votre application, et qui sera préféré à name par Electron.

[email protected]@0 app.userAgentFallback

Une string qui est la chaîne d'agent utilisateur que Electron utilisera comme solution de repli global.

C'est l'agent utilisateur qui sera utilisé quand aucun agent utilisateur n'est défini au niveau webContents ou session. Il est utile pour s'assurer que l'ensemble de votre application a le même agent utilisateur. Définissez une valeur personnalisée dès que possible dans l'initialisation de votre application pour vous assurer que votre valeur remplacée est utilisée.

app.runningUnderRosettaTranslation macOS Lecture seule Dépréciée

Propriété de type boolean qui renvoie true si l'application est actuellement en cours d'exécution sous l'environnement de traduction Rosetta.

Vous pouvez utiliser cette propriété pour demander aux utilisateurs de télécharger la version arm64 de votre application quand ils exécutent à tort la version x64 sous Rosetta.

Obsolète : Cette propriété est remplacée par la propriété runningUnderARM64Translation qui détecte lorsque l'application est traduite en ARM64 sous macOS et Windows.

app.runningUnderARM64Translation Lecture seule macOS Windows

Propriété de type boolean qui renvoie true lorsque l'application fonctionne actuellement sous un traducteur ARM64 (comme l'environnement de traduction Rosetta sous macOS ou WOW sous Windows).

Vous pouvez utiliser cette propriété pour demander aux utilisateurs de télécharger la version arm64 de votre application quand ils exécutent à tort la version x64 sous Rosetta.