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 :
eventEventlaunchInfoRecord<string, any> | NotificationResponse macOS
É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
readyn'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 thereadyevent, 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 :
eventEvent
É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-quitsera émis ensuite émettant lui même l'événementclosevers 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 :
eventEvent
É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 :
eventEventexitCodeInteger
É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 :
eventEventpathstring
É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 :
eventEventurlstring
É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 :
eventEventhasVisibleWindowsboolean
É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 :
eventEvent
É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 :
eventEvent
É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 :
eventEventtypestring - Une chaîne de caractère identifiant l'activité. Maps toNSUserActivity.activityType.userInfoinconnu - Contient l'état spécifique de l'application stocké par l'activité sur un autre appareil.- Objet
detailswebpageURLstring (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 :
eventEventtypestring - Une chaîne de caractère identifiant l'activité. Maps toNSUserActivity.activityType.
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 :
eventEventtypestring - Une chaîne de caractère identifiant l'activité. Maps toNSUserActivity.activityType.errorstring - 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 :
eventEventtypestring - Une chaîne de caractère identifiant l'activité. Maps toNSUserActivity.activityType.userInfounknown- 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 :
eventEventtypestring - Une chaîne de caractère identifiant l'activité. Maps toNSUserActivity.activityType.userInfounknown- 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 :
eventEvent
É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 :
eventEventwindowBrowserWindow
Émis lorsqu'une browserWindow perd le focus.
Événement : 'browser-window-focus'
Retourne :
eventEventwindowBrowserWindow
Émis lorsqu'une browserWindow acquiert le focus.
Événement : 'browser-window-created'
Retourne :
eventEventwindowBrowserWindow
Émis lorsqu'une nouvelle browserWindow est créé.
Événement : 'web-contents-created'
Retourne :
eventEventwebContentsWebContents
Émis lorsqu'un nouveau webContents est créé.
Événement 'certificate-error'
Retourne :
eventEventwebContentsWebContentsurlstringerrorstring - Le code d'erreurcertificateCertificatecallbackFunctionisTrustedboolean - Détermine si le certificat doit être considéré comme digne de confiance
isMainFrameboolean
É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 :
eventEventwebContentsWebContentsurlURLcertificateListCertificate[]callbackFunctioncertificateCertificat (facultatif)
É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 :
eventEventwebContentsWebContents (facultatif)- Objet
authenticationResponseDetailsurlURLpidnumber
- Objet
authInfoisProxybooleanschemestringhoststringportIntegerrealmstring
callbackFunctionusernamestring (facultatif)passwordstring (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 :
eventEventwebContentsWebContentsdetailsRenderProcessGoneDetails
É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 :
eventEvent- Objet
detailstypestring - Type de processus. Une des valeurs suivantes:UtilityZygoteSandbox helperGPUPepper PluginPepper Plugin BrokerUnknown
reasonstring - 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éroabnormal-exit- Le Processus s'est terminé avec un code de sortie différent de zérokilled- Le processus a reçu un SIGTERM ou a été tué autrement de l'extérieurcrashed- Le processus s'est plantéoom- Le processus est tombé à cours de mémoirelaunch-failed- Le processus n'a pu se lancer avec succèsintegrity-failure- Les vérifications d'intégrité du code Windows ont échouéesmemory-eviction- Process proactively terminated to prevent a future out-of-memory (OOM) situation
exitCodenumber - The exit code for the process (e.g. status from waitpid if on POSIX, from GetExitCodeProcess on Windows).serviceNamestring (facultatif) - Le nom non localisé du processus.namestring (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 :
eventEventaccessibilitySupportEnabledboolean -truequand le support de l'accessibilité de Chromium est activé, sinonfalse.
É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 :
sessionSession
Émis lorsque Electron vient de créer une nouvelle session.
const { app } = require('electron')
app.on('session-created', (session) => {
console.log(session)