app
アプリケーションのイベントライフサイクルを制御します。
プロセス: Main
以下の例では最後のウインドウが閉じられたときにアプリケーションを終了する方法を示します。
const { app } = require('electron')
app.on('window-all-closed', () => {
app.quit()
})
イベント
app
オブジェクトでは以下のイベントが発生します。
イベント: 'will-finish-launching'
アプリケーションが基本的な起動処理を完了したときに発生します。 Windows と Linux上では、will-finish-launching
イベントは ready
イベントと同じです。macOS上では、このイベントはNSApplication
の applicationWillFinishLaunching
通知を表して います。
ほとんどの場合、ready
イベントハンドラーですべてのことを行うようにするべきです。
イベント: 'ready'
戻り値:
event
EventlaunchInfo
Record<string, any> | NotificationResponse macOS
Electron が一度、初期化処理を完了したときに発生します。 macOS でアプリケーションが通知センターから起動された場合、launchInfo
はアプリケーションを開くために使用された NSUserNotification
の userInfo
や UNNotificationResponse
の情報を保持しています。 また、app.isReady()
を呼び出してこのイベントが発生したことがあるかどうかを確認したり、app.whenReady()
を呼び出して Electron 初期化時に解決される Promise を取得したりできます。
Note: The ready
event is only fired after the main process has finished running the first tick of the event loop. 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.
イベント: 'window-all-closed'
すべてのウィンドウが閉じられたときに発生します。
このイベントを購読せずに全てのウインドウを閉じた場合、既定の動作としてアプリは終了します。しかし、このイベントを購読している場合は、アプリを終了するかどうかを制御することができます。 ユーザが Cmd + Q
を押下したり、開発者が app.quit()
を呼び出したりした場合では、Electron はまず全てのウインドウを閉じようとして、その後に will-quit
イベントを発生させます。しかし、この場合は window-all-closed
イベントは発生しません。
イベント: 'before-quit'
戻り値:
event
Event
アプリケーションがウィンドウを閉じ始める前に発生します。 event.preventDefault()
を呼び出すことで、アプリケーションが終了する既定の動作を阻害できます。
注: アプリケーションの終了が autoUpdater.quitAndInstall()
によって開始された場合、全てのウインドウで close
イベントを発生させ、それらが閉じた_後_ に before-quit
が発生します。
注釈: Windows では、このイベントはシステムのシャットダウン/再起動やユーザーのログアウトでアプリケーションが閉じられようとしている場合には発生しません。
イベント: 'will-quit'
戻り値:
event
Event
すべてのウィンドウが閉じられ、アプリが終了しようとしているときに発生します。 event.preventDefault()
を呼び出すことで、アプリケーションが終了する既定の動作を阻害できます。
will-quit
と window-all-closed
イベントの差異を確認するためには、window-all-closed
イベントの説明もお読みください。
注釈: Windows では、このイベントはシステムのシャットダウン/再起動やユーザーのログアウトでアプリケーションが閉じられようとしている場合には発生しません。
イベント: 'quit'
戻り値:
event
EventexitCode
Integer
アプリケーションが終了するときに発生します。
注釈: Windows では、このイベントはシステムのシャットダウン/再起動やユーザーのログアウトでアプリケーションが閉じられようとしている場合には発生しませ ん。
イベント: 'open-file' macOS
戻り値:
event
Eventpath
string
ユーザがアプリケーションでファイルを開こうとしたときに発生します。 open-file
イベントは、大抵の場合ファイルをアプリケーションが既に開いていて、OS が開くために再利用しようとしたときに発生します。 open-file
は、Dock にファイルがドロップされて、アプリケーションがまだ起動していないときにも発生します。 このようなケースに対処するために、アプリケーション起動時の非常に早い段階 ( ready
イベントが発生するよりも前) で open-file
イベントを監視するようにしてください。
このイベントを処理する場合、event.preventDefault()
を呼び出す必要があります。
Windows では、ファイルパスを取得するために (メインプロセスの) process.argv
をパースしなければなりません。
イベント: 'open-url' macOS
戻り値:
event
Eventurl
string
ユーザがこのアプリケーションで URL を開こうとしたと きに発生します。 アプリケーションの Info.plist
ファイルで CFBundleURLTypes
キーの中に URL スキームを定義し、NSPrincipalClass
に AtomApplication
を設定しなければなりません。
open-file
イベントと同様に、アプリケーションの起動時に open-url
イベントのリスナーを必ず登録し、アプリケーションが URL のハンドリングとして開かれているかどうかを検出するようにしてください。 ready
イベントの応答でリスナーを登録すると、アプリケーション起動のトリガーとなった URL を逃すことになります。
イベント: 'activate' macOS
戻り値:
event
EventhasVisibleWindows
boolean
アプリケーションがアクティブになったときに発生します。 アプリケーションが最初に起動される、既に実行中のときにアプリケーションを再起動しようとする、アプリケーションの Dock やタスクバーのアイコンをクリックするなど、いろいろなアクションがこのイベントの引き金となり得ます。
イベント: 'did-become-active' macOS
戻り値:
event
Event
アプリケーションがアクティブになったときに発生します。 did-become-active
は activate
イベントと異なり、アプリがアクティブになるときだけでなく、Dock アイコンがクリックされた時やアプリケーションが再起動した時にも発生します。 また、ユーザーが macOS のアプリ切り替えでこのアプリへと切り替えたときにも発生します。
イベント: 'did-resign-active' macOS
戻り値:
event
Event
アプリがアクティブでなくなり、フォーカスがなくなったときに発生します。 これは例えば、他のアプリケーションをクリックしたり、macOS のアプリ切り替えで他のアプリケーションへ切り替えたりすると発生します。
イベント: 'continue-activity' macOS
戻り値:
event
Eventtype
string - アクティビティを識別する文字列。NSUserActivity.activityType
と対応しています。userInfo
unknown - 別のデバイスのアクティビティによって保存されたアプリ固有の情報が含まれています。details
ObjectwebpageURL
string (任意) - 利用可能な場合、別デバイス上の操作でアクセスしたウェブページの URL を特定する文字列になります。
Handoff 中に別のデバイスからアクティビティを継続したいときに発生します。 このイベントを処理する場合、event.preventDefault()
を呼び出す必要があります。
ユーザのアクティビティはアクティビティ元のアプリと同一の開発者チームIDを持ち、アクティビティタイプをサポートするアプリでしか継続させることができません。 サポートされるアクティビティタイプは、アプリの Info.plist
の NSUserActivityTypes
キーで指定されています。
イベント: 'will-continue-activity' macOS
戻り値:
event
Eventtype
string - アクティビティを識別する文字列。NSUserActivity.activityType
と対応しています。
Handoff 中に別のデバイスからのアクティビティを継続しようとする前に発生します。 このイベントを処理する場合、event.preventDefault()
を呼び出す必要があります。
イベント: 'continue-activity-error' macOS
戻り値:
event
Eventtype
string - アクティビティを識別する文字列。NSUserActivity.activityType
と対応しています。error
string - エラーのローカライズされた説明としての文字列。
Handoff 中に別のデバイスからのアクティビティを継続できなかったときに発生します。
イベント: 'activity-was-continued' macOS
戻り値:
event
Eventtype
string - アクティビティを識別する文字列。NSUserActivity.activityType
と対応しています。userInfo
unknown - アクティビティによって保存されたアプリ固有の情報が含まれています。
Handoff 中にこのデバイスからのアクティビティを他のデバイスで継続させることに成功した後で発生します。
イベント: 'update-activity-state' macOS
戻り値:
event
Eventtype
string - アクティビティを識別する文字列。NSUserActivity.activityType
と対応しています。userInfo
unknown - アクティビティによって保存されたアプリ固有の情報が含まれています。
Handoff が別のデバイスで継続し始めようとしているときに発生します。 送信される情報を更新する必要があれば、event.preventDefault()
をすぐに呼び出してください。そして、新しい userInfo
辞書を構築して app.updateCurrentActivity()
を適切に呼び出してください。 さもなくば操作は失敗し、continue-activity-error
が呼び出されます。
イベント: 'new-window-for-tab' macOS
戻り値:
event
Event
ユーザーが macOS ネイティブの新規タブボタンをクリックすると発生します。 新規タブボタンは現在の BrowserWindow
に tabbingIdentifier
が設定されている場合にだけ表示されます。
イベント: 'browser-window-blur'
戻り値:
event
Eventwindow
BrowserWindow
browserWindow のフォーカスが外れたときに発生します。
イベント: 'browser-window-focus'
戻り値:
event
Eventwindow
BrowserWindow
browserWindow がフォーカスを得たときに発生します。
イベント: 'browser-window-created'
戻り値:
event
Eventwindow
BrowserWindow
新しい browserWindow が生成されたときに発生します。
イベント: 'web-contents-created'
戻り値:
event
EventwebContents
WebContents
新しい webContents が生成されたときに発生します。
イベント: 'certificate-error'
戻り値:
event
EventwebContents
WebContentsurl
stringerror
string - エラーコードcertificate
Certificatecallback
FunctionisTrusted
boolean - 証明書を信頼できるものと見なすかどうか
isMainFrame
boolean
url
に対する certificate
の検証に失敗したときに発生します。証明書を信頼するためには、event.preventDefault()
で既定の動作をキャンセルして、callback(true)
を呼び出すようにしてください。
const { app } = require('electron')
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
if (url === 'https://github.com') {
// 検証ロジック。
event.preventDefault()
callback(true)
} else {
callback(false)
}
})
イベント: 'select-client-certificate'
戻り値:
event
EventwebContents
WebContentsurl
URLcertificateList
Certificate[]callback
Functioncertificate
Certificate (任意)
クライアント証明書が要求されたときに発生します。
url
がクライアント証明書を要求しているナビゲーションエントリーに対応していれば、リストからフィルターされたエントリーで callback
を呼び出すことができます。 event.preventDefault()
を使うことで、アプリケーションがストアから最初の証明書を使うのをキャンセルできます。
const { app } = require('electron')
app.on('select-client-certificate', (event, webContents, url, list, callback) => {
event.preventDefault()
callback(list[0])
})
イベント: 'login'
戻り値:
event
EventwebContents
WebContentsauthenticationResponseDetails
Objecturl
URL
authInfo
ObjectisProxy
booleanscheme
stringhost
stringport
Integerrealm
string
callback
Functionusername
string (任意)password
string (optional)
webContents
がBasic認証を要求すると発生します。
既定の動作では、全てに認証をキャンセルします。 これを変更するには、event.preventDefault()
で既定の動作をキャンセルして、資格情報と共に callback(username, password)
を呼び出すようにしてください。
const { app } = require('electron')
app.on('login', (event, webContents, details, authInfo, callback) => {
event.preventDefault()
callback('username', 'secret')
})
ユーザー名またはパスワードを渡さずに callback
を呼び出すと、認証リクエストはキャンセルされ、認証エラーがページに返されます。
イベント: 'gpu-info-update'
GPU 情報の更新がある場合に発生します。
イベント: 'render-process-gone'
戻り値:
event
EventwebContents
WebContentsdetails
RenderProcessGoneDetails
renderer processが予期せず消えたときに発生します。 プロセスがクラッシュした場合やキルされた場合は正常です。
イベント: 'child-process-gone'
戻り値:
event
Eventdetails
Objecttype
string - プロセスの種別。 以下の値のいずれかです。Utility
Zygote
Sandbox helper
GPU
Pepper Plugin
Pepper Plugin Broker
Unknown
reason
string - 子プロセスがなくなった理由。 取りうる値:clean-exit
- ゼロの終了コードでプロセスが終了したabnormal-exit
- 非ゼロの終了コードでプロセスが終了したkilled
- プロセスが SIGTERM シグナルの送信などの方法でキルされたcrashed
- プロセスがクラッシュしたoom
- プロセスがメモリ不足になったlaunch-failed
- プロセスが正常に起動されなかったintegrity-failure
- Windows コードの整合性チェックに失敗した
exitCode
number - プロセスの終了コード (例: posix の場合は waitpid からのステータス、Windowsの場合は GetExitCodeProcess) 。serviceName
string (任意) - そのプロセスのローカライズされていない名前。name
string (任意) - そのプロセスの名前。 ユーティリティの例:Audio Service
,Content Decryption Module Service
,Network Service
,Video Capture
など
子 processが予期せず消えたときに発生します。 プロセスがクラッシュした場合やキルされた場合は正常です。 レンダラープロセスを含みません。
イベント: 'accessibility-support-changed' macOS Windows
戻り値:
event
EventaccessibilitySupportEnabled
boolean - Chrome のユーザ補助機能が有効な場合はtrue
、そうでない場合はfalse
。
Chromeのユーザ補助機能が変更されると発生します。 このイベントはスクリーンリーダーのような支援技術が有効にされたり、無効にされたりしたときに発火します。 詳細については、https://www.chromium.org/developers/design-documents/accessibility を参照してください。