Aller au contenu principal

app

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

Process: 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é le 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.

Dans la plupart des cas, vous devriez pouvoir tout faire dans l'évènement 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é.

[!NOTE] L'événement ready n'est déclenché qu' après que le processus principal ait terminé l'exécution du premier tick de la boucle d'événement. If an Electron API needs to be called before the ready event, ensure that it is called synchronously in the top-level context of the main process.

É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 pas. Si l'utilisateur appuie sur Cmd + Q, ou que le développeur appelle app.quit(), Electron essaira d'abord de fermer toutes les fenêtres et puis émettra 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 d'arrêter l'application.

Remarque : Si la fermeture 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 émit si l'application est fermée à cause d'un extinction du système/re-démarrage 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 d'arrêter 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 émit si l'application est fermée à cause d'un extinction du système/re-démarrage ou une déconnexion de l'utilisateur.

Événement : 'quit'

Retourne :

  • event Event
  • exitCode Integer

Émis lorsque l'application s'arrête.

[!Note: Sous Windows, cet événement ne sera pas émit si l'application est fermée à cause d'un extinction du système/re-démarrage 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 devez 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.

Comme pour l'événement open-file , assurez-vous d’enregistrer un listener pour l’événement open-url très tôt lors du démarrage de votre application afin de détecter si l’application est ouverte pour gérer une URL. Si vous enregistrez l'écouteur en réponse à l'é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. Il est également émis lorsqu'un utilisateur passe à l'application via le commutateur d'application macOS.

Événement : 'user-did-resign-active' macOS

Retourne :

  • event Event

Émis lorsque l'application n'est plus active et n'a pas de focus. Cela peut être déclenché, par exemple, en cliquant sur une autre application ou en utilisant le commutateur d'application macOS vers basculer vers une autre application.

Événement : 'continue-activity' macOS

Retourne :

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

Emitted during Handoff when an activity from a different device wants to be resumed. 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 :

Emitted during Handoff before an activity from a different device wants to be resumed. 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é. Maps to NSUserActivity.activityType.
  • error string - Une chaîne de caractères avec la description localisée de l'erreur.

Emitted during Handoff when an activity from a different device fails to be resumed.

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

Retourne :

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

Emitted during Handoff after an activity from this device was successfully resumed on another one.

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

Retourne :

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

Emitted when Handoff is about to be resumed on another device. 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.

You must create a window in this handler in order for macOS tabbing to work as expected.

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

Retourne :

Émis lorsqu'une browserWindow perd le focus.

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

Retourne :

Émis lorsqu'une 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 (facultatif)
  • Objet authenticationResponseDetails
    • url URL
    • pid number
  • Objet authInfo
    • isProxy boolean
    • scheme string
    • host string
    • port Integer
    • realm string
  • callback Function
    • username string (facultatif)
    • password string (facultatif)

Émis lorsque webContents ou Utilitaire veut faire une authentification basique.

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 : 'render-process-gone'

Retourne :

Émis lorsque le processus de rendu disparait de manière inattendue. C'est habituelement parce qu'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 - Le 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
      • memory-eviction - Process proactively terminated to prevent a future out-of-memory (OOM) situation
    • exitCode number - The exit code for the process (e.g. status from waitpid if on POSIX, from GetExitCodeProcess on 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.

Cet événement est émis lorsque le processus enfant disparaît de façon inattendue. C'est habituelement parce qu'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 Chromium 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)