app
アプリケーションのイベントライフサイクルを制御します。
プロセス: メイン
次の例は、最後のウィンドウが閉じられたときにアプリケーションを終了する方法を示しています。
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
イベントlaunchInfo
Record<string, any> | NotificationResponse macOS
Electronの初期化が完了したときに一度発行されます。macOSでは、launchInfo
は、通知センターからアプリケーションが起動された場合に使用されたNSUserNotification
のuserInfo
、またはUNNotificationResponse
からの情報を保持します。app.isReady()
を呼び出して、このイベントが既に発生しているかどうかを確認し、app.whenReady()
を呼び出してElectronが初期化されたときに解決されるPromiseを取得することもできます。
注記: ready
イベントは、メインプロセスがイベントループの最初のティックの実行を終えた後にのみ発行されます。ready
イベントの前にElectron APIを呼び出す必要がある場合は、メインプロセスの最上位コンテキストで同期的に呼び出すようにしてください。
イベント: 'window-all-closed'
すべてのウィンドウが閉じられたときに発行されます。
このイベントを購読せず、すべてのウィンドウが閉じられた場合、デフォルトの動作はアプリを終了することです。ただし、購読している場合は、アプリを終了するかどうかを制御できます。ユーザーがCmd + Q
を押したか、開発者がapp.quit()
を呼び出した場合、Electronは最初にすべてのウィンドウを閉じようと試み、次にwill-quit
イベントを発行します。この場合、window-all-closed
イベントは発行されません。
イベント: 'before-quit'
戻り値
event
イベント
アプリケーションがウィンドウの閉じを開始する前に発行されます。event.preventDefault()
を呼び出すと、アプリケーションを終了するというデフォルトの動作が阻止されます。
注記: アプリケーションの終了がautoUpdater.quitAndInstall()
によって開始された場合、before-quit
はすべてのウィンドウでclose
イベントを発行してそれらを閉じた*後*に発行されます。
注記: Windowsでは、システムのシャットダウン/再起動またはユーザーログアウトが原因でアプリが閉じられた場合は、このイベントは発行されません。
イベント: 'will-quit'
戻り値
event
イベント
すべてのウィンドウが閉じられ、アプリケーションが終了しようとしているときに発行されます。event.preventDefault()
を呼び出すと、アプリケーションを終了するというデフォルトの動作が阻止されます。
will-quit
イベントとwindow-all-closed
イベントの違いについては、window-all-closed
イベントの説明を参照してください。
注記: Windowsでは、システムのシャットダウン/再起動またはユーザーログアウトが原因でアプリが閉じられた場合は、このイベントは発行されません。
イベント: 'quit'
戻り値
event
イベントexitCode
整数
アプリケーションが終了しようとしているときに発行されます。
注記: Windowsでは、システムのシャットダウン/再起動またはユーザーログアウトが原因でアプリが閉じられた場合は、このイベントは発行されません。
イベント: 'open-file' macOS
戻り値
event
イベントpath
文字列
ユーザーがアプリケーションでファイルを開こうとしたときに発行されます。open-file
イベントは通常、アプリケーションが既に開いていて、OSがアプリケーションを再利用してファイルを開こうとしている場合に発行されます。open-file
は、ファイルがDockにドロップされ、アプリケーションがまだ実行されていない場合にも発行されます。このケースを処理するには、アプリケーションの起動の非常に早い段階で(ready
イベントが発行される前でも)open-file
イベントを必ずリッスンしてください。
このイベントを処理する場合は、event.preventDefault()
を呼び出す必要があります。
Windowsでは、ファイルパスを取得するには、process.argv
(メインプロセス内)を解析する必要があります。
イベント: 'open-url' macOS
戻り値
event
イベントurl
文字列
ユーザーがアプリケーションでURLを開こうとしたときに発行されます。アプリケーションのInfo.plist
ファイルでは、CFBundleURLTypes
キー内にURLスキームを定義し、NSPrincipalClass
をAtomApplication
に設定する必要があります。
open-file
イベントと同様に、アプリケーションの起動の早い段階でopen-url
イベントのリスナーを登録して、アプリケーションがURLを処理するために開かれているかどうかを検出してください。ready
イベントに応答してリスナーを登録すると、アプリケーションの起動をトリガーするURLを見逃すことになります。
イベント: 'activate' macOS
戻り値
event
イベントhasVisibleWindows
ブーリアン
アプリケーションがアクティブになったときに発行されます。アプリケーションを初めて起動したり、既に実行中のアプリケーションを再起動しようとしたり、アプリケーションのDockまたはタスクバーアイコンをクリックしたりするなど、さまざまな操作がこのイベントをトリガーする可能性があります。
イベント: 'did-become-active' macOS
戻り値
event
イベント
アプリケーションがアクティブになったときに発行されます。これはactivate
イベントとは異なり、did-become-active
はアプリがアクティブになるたびに発行され、Dockアイコンがクリックされたときやアプリケーションが再起動されたときだけではありません。ユーザーがmacOSアプリスイッチャーを使用してアプリに切り替えた場合にも発行されます。
イベント: 'did-resign-active' macOS
戻り値
event
イベント
アプリがアクティブではなくなり、フォーカスを持っていないときに発行されます。これは、たとえば、別のアプリケーションをクリックしたり、macOSアプリスイッチャーを使用して別のアプリケーションに切り替えたりすることでトリガーできます。
イベント: 'continue-activity' macOS
戻り値
event
イベントtype
文字列 - アクティビティを識別する文字列。NSUserActivity.activityType
にマップされます。userInfo
不明 - 別のデバイスのアクティビティによって保存されたアプリ固有の状態が含まれます。details
オブジェクトwebpageURL
文字列(オプション) - 使用可能な場合、別のデバイスのアクティビティによってアクセスされたWebページのURLを識別する文字列。
Handoff中に、別のデバイスからのアクティビティが再開されようとしているときに発行されます。このイベントを処理する場合は、event.preventDefault()
を呼び出す必要があります。
ユーザーアクティビティは、アクティビティのソースアプリと同じ開発者チームIDを持ち、アクティビティのタイプをサポートしているアプリでのみ続行できます。サポートされるアクティビティタイプは、アプリのInfo.plist
のNSUserActivityTypes
キーで指定されています。
イベント: 'will-continue-activity' macOS
戻り値
event
イベントtype
文字列 - アクティビティを識別する文字列。NSUserActivity.activityType
にマップされます。
Handoff中に、別のデバイスからのアクティビティが再開されようとする前に発行されます。このイベントを処理する場合は、event.preventDefault()
を呼び出す必要があります。
イベント: 'continue-activity-error' macOS
戻り値
event
イベントtype
文字列 - アクティビティを識別する文字列。NSUserActivity.activityType
にマップされます。error
文字列 - エラーのローカライズされた説明を含む文字列。
Handoff中に、別のデバイスからのアクティビティの再開が失敗したときに発行されます。
イベント: 'activity-was-continued' macOS
戻り値
event
イベントtype
文字列 - アクティビティを識別する文字列。NSUserActivity.activityType
にマップされます。userInfo
不明 - アクティビティによって保存されたアプリ固有の状態が含まれます。
このデバイスからのアクティビティが別のデバイスで正常に再開された後、Handoff中に発生します。
イベント: 'update-activity-state' macOS
戻り値
event
イベントtype
文字列 - アクティビティを識別する文字列。NSUserActivity.activityType
にマップされます。userInfo
不明 - アクティビティによって保存されたアプリ固有の状態が含まれます。
Handoffが別のデバイスで再開されようとしているときに発生します。転送する状態を更新する必要がある場合は、すぐにevent.preventDefault()
を呼び出し、新しいuserInfo
辞書を作成して、タイムリーにapp.updateCurrentActivity()
を呼び出す必要があります。それ以外の場合は、操作が失敗し、continue-activity-error
が呼び出されます。
イベント: 'new-window-for-tab' macOS
戻り値
event
イベント
ユーザーがネイティブmacOSの新規タブボタンをクリックしたときに発生します。新規タブボタンは、現在のBrowserWindow
にtabbingIdentifier
がある場合にのみ表示されます。
イベント: 'browser-window-blur'
戻り値
event
イベントwindow
BrowserWindow
browserWindowが非アクティブになったときに発生します。
イベント: 'browser-window-focus'
戻り値
event
イベントwindow
BrowserWindow
browserWindowがアクティブになったときに発生します。
イベント: 'browser-window-created'
戻り値
event
イベントwindow
BrowserWindow
新しいbrowserWindowが作成されたときに発生します。
イベント: 'web-contents-created'
戻り値
event
イベントwebContents
WebContents
新しいwebContentsが作成されたときに発生します。
イベント: 'certificate-error'
戻り値
event
イベントwebContents
WebContentsurl
文字列error
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') {
// Verification logic.
event.preventDefault()
callback(true)
} else {
callback(false)
}
})
イベント: 'select-client-certificate'
戻り値
event
イベントwebContents
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
イベントwebContents
WebContents (オプション)authenticationResponseDetails
Objecturl
URLpid
number
authInfo
ObjectisProxy
booleanscheme
stringhost
stringport
Integerrealm
string
callback
Functionusername
string (オプション)password
string (オプション)
webContents
またはユーティリティプロセスが基本認証を実行しようとしたときに発生します。
デフォルトの動作は、すべての認証をキャンセルすることです。これをオーバーライドするには、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
イベントwebContents
WebContentsdetails
RenderProcessGoneDetails
レンダラープロセスが予期せず消失したときに発生します。これは通常、クラッシュまたは強制終了が原因です。
イベント: 'child-process-gone'
戻り値
event
イベントdetails
オブジェクトtype
string - プロセスタイプ。以下のいずれかの値ユーティリティ
Zygote
サンドボックスヘルパー
GPU
Pepper Plugin
Pepper Plugin Broker
不明
reason
string - 子プロセスが消失した理由。可能な値clean-exit
- プロセスが終了コード0で終了abnormal-exit
- プロセスが0以外の終了コードで終了killed
- プロセスにSIGTERMが送信されたか、外部から強制終了されたcrashed
- プロセスがクラッシュoom
- プロセスがメモリ不足launch-failed
- プロセスが正常に起動しなかったintegrity-failure
- Windowsコード整合性チェックに失敗
exitCode
number - プロセスの終了コード(例:posixの場合はwaitpidからのステータス、Windowsの場合はGetExitCodeProcessからのステータス)。serviceName
string (オプション) - プロセスのローカライズされていない名前。name
string (オプション) - プロセスの名前。ユーティリティの例:「オーディオサービス」、「コンテンツ暗号化モジュールサービス」、「ネットワークサービス」、「ビデオキャプチャ」など。
子プロセスが予期せず消失したときに発生します。これは通常、クラッシュまたは強制終了が原因です。レンダラープロセスは含まれません。
イベント: 'accessibility-support-changed' macOS Windows
戻り値
event
イベントaccessibilitySupportEnabled
boolean - Chromeのアクセシビリティサポートが有効な場合はtrue
、無効な場合はfalse
。
Chromeのアクセシビリティサポートが変更されたときに発生します。このイベントは、スクリーンリーダーなどの支援技術が有効または無効になったときに発生します。詳細については、https://www.chromium.org/developers/design-documents/accessibilityを参照してください。
イベント: 'session-created'
戻り値
session
Session
Electronが新しいsession
を作成したときに発生します。
const { app } = require('electron')
app.on('session-created', (session) => {
console.log(session)
})
イベント: 'second-instance'
戻り値
event
イベントargv
string[] - 2番目のインスタンスのコマンドライン引数の配列workingDirectory
string - 2番目のインスタンスの作業ディレクトリadditionalData
unknown - 2番目のインスタンスから渡された追加データのJSONオブジェクト
2番目のインスタンスが実行され、app.requestSingleInstanceLock()
を呼び出したときに、アプリケーションのプライマリインスタンス内でこのイベントが発生します。
argv
は2番目のインスタンスのコマンドライン引数の配列であり、workingDirectory
はその現在の作業ディレクトリです。通常、アプリケーションはこれに応答して、プライマリウィンドウをフォーカスし、最小化されていない状態にします。
注: argv
は、2番目のインスタンスに渡された引数のリストとまったく同じではありません。順序が変わる可能性があり、追加の引数が追加される可能性があります。まったく同じ引数を維持する必要がある場合は、代わりにadditionalData
を使用することをお勧めします。
注: 2番目のインスタンスが最初のインスタンスとは異なるユーザーによって開始された場合、argv
配列には引数は含まれません。
このイベントは、app
のready
イベントの発生後に発生することが保証されています。
注: Chromiumによって、--original-process-start-time
などの追加のコマンドライン引数が追加される場合があります。
メソッド
app
オブジェクトには、次のメソッドがあります。
注: 一部のメソッドは特定のオペレーティングシステムでのみ使用可能であり、そのようにラベル付けされています。
app.quit()
すべてのウィンドウを閉じようとします。最初にbefore-quit
イベントが発生します。すべてのウィンドウが正常に閉じられた場合、will-quit
イベントが発生し、デフォルトでアプリケーションは終了します。
このメソッドは、すべてのbeforeunload
およびunload
イベントハンドラーが正しく実行されることを保証します。ウィンドウがbeforeunload
イベントハンドラーでfalse
を返すことで、終了をキャンセルすることが可能です。
app.exit([exitCode])
exitCode
Integer (オプション)
exitCode
で直ちに終了します。exitCode
のデフォルトは0です。
すべてのウィンドウはユーザーに確認することなく直ちに閉じられ、before-quit
イベントとwill-quit
イベントは発生しません。
app.relaunch([options])
現在のインスタンスが終了したときにアプリを再起動します。
デフォルトでは、新しいインスタンスは、現在のインスタンスと同じ作業ディレクトリとコマンドライン引数を使用します。args
が指定されている場合、args
はコマンドライン引数として渡されます。execPath
が指定されている場合、現在のアプリではなくexecPath
が再起動のために実行されます。
このメソッドは実行時にアプリを終了しないことに注意してください。アプリを再起動するには、app.relaunch
を呼び出した後にapp.quit
またはapp.exit
を呼び出す必要があります。
app.relaunch
が複数回呼び出された場合、現在のインスタンスが終了した後に複数のインスタンスが開始されます。
現在のインスタンスを直ちに再起動し、新しいインスタンスに新しいコマンドライン引数を追加する例
const { app } = require('electron')
app.relaunch({ args: process.argv.slice(1).concat(['--relaunch']) })
app.exit(0)
app.isReady()
boolean
を返します - Electronが初期化を完了した場合はtrue
、それ以外の場合はfalse
。app.whenReady()
も参照してください。
app.whenReady()
Promise<void>
を返します - Electronが初期化されたときに解決されます。アプリがまだ準備できていない場合、app.isReady()
をチェックし、ready
イベントを購読する便利な代替手段として使用できます。
app.focus([options])
Linuxでは、最初に表示されるウィンドウにフォーカスします。macOSでは、アプリケーションをアクティブなアプリにします。Windowsでは、アプリケーションの最初のウィンドウにフォーカスします。
steal
オプションの使用は、可能な限り控えめにすべきです。
app.hide()
macOS
すべてのアプリケーションウィンドウを最小化せずに非表示にします。
app.isHidden()
macOS
boolean
を返します - アプリケーション(すべてのウィンドウを含む)が非表示になっている場合(例:Command-H
)、true
、それ以外の場合はfalse
。
app.show()
macOS
非表示になった後にアプリケーションウィンドウを表示します。自動的にフォーカスしません。
app.setAppLogsPath([path])
path
string (オプション) - ログのカスタムパス。絶対パスでなければなりません。
アプリのログを格納するディレクトリを設定または作成します。その後、app.getPath()
またはapp.setPath(pathName, newPath)
で操作できます。
path
パラメータなしでapp.setAppLogsPath()
を呼び出すと、このディレクトリはmacOSでは~/Library/Logs/YourAppName
に、LinuxとWindowsではuserData
ディレクトリ内に設定されます。
app.getAppPath()
string
を返します - 現在のアプリケーションディレクトリ。
app.getPath(name)
name
string - 次のパスを名前で要求できますhome
ユーザーのホームディレクトリ。appData
ユーザーごとのアプリケーションデータディレクトリ。デフォルトでは、- Windowsでは
%APPDATA%
- Linuxでは
$XDG_CONFIG_HOME
または~/.config
- macOSでは
~/Library/Application Support
- Windowsでは
userData
アプリの構成ファイルを保存するためのディレクトリ。デフォルトでは、アプリ名を追加したappData
ディレクトリです。慣例により、ユーザーデータを保存するファイルはここに書き込む必要があります。一部の環境ではこのディレクトリがクラウドストレージにバックアップされる可能性があるため、大きなファイルをここに書き込むことは推奨されません。sessionData
Session
によって生成されたデータ(localStorage、Cookie、ディスクキャッシュ、ダウンロードされた辞書、ネットワーク状態、デベロッパーツールファイルなど)を保存するためのディレクトリ。デフォルトではuserData
を指します。Chromiumはここに非常に大きなディスクキャッシュを書き込む可能性があるため、アプリがlocalStorageやCookieなどのブラウザストレージにユーザーデータを保存することに依存していない場合は、userData
ディレクトリの汚染を避けるために、このディレクトリを他の場所に設定することをお勧めします。temp
一時ディレクトリ。exe
現在の実行可能ファイル。module
libchromiumcontent
ライブラリ。desktop
現在のユーザーのデスクトップディレクトリ。documents
ユーザーの「ドキュメント」ディレクトリ。downloads
ユーザーのダウンロードディレクトリ。music
ユーザーの音楽ディレクトリ。pictures
ユーザーの画像ディレクトリ。videos
ユーザーの動画ディレクトリ。recent
ユーザーの最近のファイルのディレクトリ(Windowsのみ)。logs
アプリのログフォルダーのディレクトリ。crashDumps
クラッシュダンプが保存されるディレクトリ。
string
を返します - name
に関連付けられた特別なディレクトリまたはファイルへのパス。失敗した場合は、Error
がスローされます。
app.setAppLogsPath()
を最初に呼び出さずにapp.getPath('logs')
を呼び出すと、path
パラメータなしでapp.setAppLogsPath()
を呼び出した場合と等価なデフォルトのログディレクトリが作成されます。
app.getFileIcon(path[, options])
path
文字列
Promise<NativeImage>
を返します - アプリのアイコン(NativeImage)で解決されます。
パスの関連付けられたアイコンを取得します。
Windowsでは、2種類のアイコンがあります。
.mp3
、.png
などの特定のファイル拡張子に関連付けられたアイコン。.exe
、.dll
、.ico
などのファイル自体内にあるアイコン。
LinuxとmacOSでは、アイコンはファイルのMIMEタイプに関連付けられたアプリケーションによって異なります。
app.setPath(name, path)
name
stringpath
文字列
name
に関連付けられた特別なディレクトリまたはファイルへのpath
をオーバーライドします。パスが存在しないディレクトリを指定すると、Error
がスローされます。その場合、ディレクトリはfs.mkdirSync
などで作成する必要があります。
app.getPath
で定義されているname
のパスのみをオーバーライドできます。
デフォルトでは、WebページのCookieとキャッシュはsessionData
ディレクトリに保存されます。この場所を変更する場合は、app
モジュールのready
イベントが発行される前にsessionData
パスをオーバーライドする必要があります。
app.getVersion()
string
を返します - 読み込まれたアプリケーションのバージョン。アプリケーションのpackage.json
ファイルにバージョンが見つからない場合は、現在のバンドルまたは実行可能ファイルのバージョンが返されます。
app.getName()
string
を返します - 現在のアプリケーションの名前。アプリケーションのpackage.json
ファイルの名前です。
通常、package.json
のname
フィールドは、npmモジュール仕様に従って短い小文字の名前です。通常はproductName
フィールドも指定する必要があります。これはアプリケーションの完全な大文字の名前で、Electronではname
よりも優先されます。
app.setName(name)
name
string
現在のアプリケーションの名前をオーバーライドします。
注: この関数はElectron内部で使用される名前をオーバーライドします。OSが使用する名前には影響しません。
app.getLocale()
string
を返します - Chromiumのl10n_util
ライブラリを使用して取得された現在のアプリケーションロケール。可能な戻り値については、こちらで説明されています。
ロケールを設定するには、アプリの起動時にコマンドラインスイッチを使用する必要があります。これについてはこちらを参照してください。
注: パッケージ化されたアプリを配布する場合は、locales
フォルダーも配布する必要があります。
注: このAPIは、ready
イベントが発行された後に呼び出す必要があります。
注: このAPIの戻り値の例を他のロケールおよび言語APIと比較するには、app.getPreferredSystemLanguages()
を参照してください。
app.getLocaleCountryCode()
string
を返します - ユーザーのオペレーティングシステムのロケール2文字ISO 3166国コード。この値はネイティブOS APIから取得されます。
注: ロケール国コードを検出できない場合は、空の文字列を返します。
app.getSystemLocale()
string
を返します - 現在のシステムロケール。WindowsとLinuxでは、Chromiumのi18n
ライブラリを使用して取得されます。macOSでは、代わりに[NSLocale currentLocale]
が使用されます。ユーザーの現在のシステム言語(常にロケールと同じとは限らない)を取得するには、app.getPreferredSystemLanguages()
を使用する方が良いでしょう。
異なるオペレーティングシステムでは、地域データも異なって使用されます。
- Windows 11では、数値、日付、時刻の地域形式が使用されます。
- macOS Montereyでは、数値、日付、時刻の書式設定、および使用する通貨記号の選択に地域が使用されます。
したがって、このAPIは、特に開発者がOSと形式を一致させたい場合、カレンダーアプリで日付と時刻のレンダリング形式を選択するなどの目的で使用できます。
注: このAPIは、ready
イベントが発行された後に呼び出す必要があります。
注: このAPIの戻り値の例を他のロケールおよび言語APIと比較するには、app.getPreferredSystemLanguages()
を参照してください。
app.getPreferredSystemLanguages()
string[]
を返します - ユーザーの優先システム言語(最も優先される順に)。該当する場合は国コードも含まれます。ユーザーは、WindowsまたはmacOSで言語と地域の設定を使用して、このリストを変更および追加できます。
このAPIは、WindowsではGlobalizationPreferences
(GetSystemPreferredUILanguages
へのフォールバックあり)、macOSでは\[NSLocale preferredLanguages\]
、Linuxではg_get_language_names
を使用します。
このAPIは、アプリケーションに表示する言語を決定するなどの目的で使用できます。
さまざまな言語とロケールAPIの戻り値の例を、さまざまな構成で示します。
Windowsの場合、アプリケーションロケールがドイツ語で、地域形式がフィンランド語(フィンランド)、最も優先されるシステム言語がフランス語(カナダ)、英語(米国)、簡体字中国語(中国)、フィンランド語、スペイン語(ラテンアメリカ)の場合。
app.getLocale() // 'de'
app.getSystemLocale() // 'fi-FI'
app.getPreferredSystemLanguages() // ['fr-CA', 'en-US', 'zh-Hans-CN', 'fi', 'es-419']
macOSの場合、アプリケーションロケールがドイツ語で、地域がフィンランドで、最も優先されるシステム言語がフランス語(カナダ)、英語(米国)、簡体字中国語、スペイン語(ラテンアメリカ)の場合。
app.getLocale() // 'de'
app.getSystemLocale() // 'fr-FI'
app.getPreferredSystemLanguages() // ['fr-CA', 'en-US', 'zh-Hans-FI', 'es-419']
使用可能な言語と地域、および可能な戻り値は、オペレーティングシステムによって異なります。
上記の例からもわかるように、Windowsでは、優先システム言語に国コードがない場合や、優先システム言語の1つが地域形式に使用される言語と一致する場合があります。macOSでは、地域はデフォルトの国コードとして機能します。ユーザーはフィンランドを地域として使用するためにフィンランド語を優先言語として持つ必要はなく、言語名に関連付けられた国がない優先システム言語の国コードとしてFI
が使用されます。
app.addRecentDocument(path)
macOS Windows
path
文字列
最近のドキュメント一覧にpath
を追加します。
この一覧はOSによって管理されています。Windowsではタスクバーから、macOSではDockメニューからアクセスできます。
app.clearRecentDocuments()
macOS Windows
最近のドキュメント一覧をクリアします。
app.setAsDefaultProtocolClient(protocol[, path, args])
protocol
文字列 - プロトコルの名前(://
を除く)。例えば、アプリでelectron://
リンクを処理したい場合は、このメソッドをパラメーターとしてelectron
で呼び出します。path
文字列(オプション) Windows - Electron実行ファイルへのパス。デフォルトはprocess.execPath
args
文字列配列(オプション) Windows - 実行ファイルに渡される引数。デフォルトは空の配列
戻り値 boolean
- 呼び出しが成功したかどうか。
現在の実行ファイルをプロトコル(別名URIスキーム)のデフォルトハンドラーとして設定します。これにより、アプリをオペレーティングシステムにより深く統合できます。登録されると、your-protocol://
が付いたすべてのリンクは、現在の実行ファイルで開かれます。プロトコルを含むリンク全体がパラメーターとしてアプリケーションに渡されます。
注記: macOSでは、アプリのinfo.plist
に追加されたプロトコルのみを登録できます。これは実行時に変更できません。ただし、Electron Forge、Electron Packager、またはテキストエディタでinfo.plist
を編集することで、ビルド時にファイルを編集できます。詳細はAppleのドキュメントを参照してください。
注記: Windowsストア環境(appx
としてパッケージ化されている場合)、このAPIはすべての呼び出しに対してtrue
を返しますが、設定されたレジストリキーには他のアプリケーションからアクセスできません。Windowsストアアプリケーションをデフォルトのプロトコルハンドラーとして登録するには、マニフェストでプロトコルを宣言する必要があります。
このAPIは内部的にWindowsレジストリとLSSetDefaultHandlerForURLScheme
を使用しています。
app.removeAsDefaultProtocolClient(protocol[, path, args])
macOS Windows
protocol
文字列 - プロトコルの名前(://
を除く)。path
文字列(オプション) Windows - デフォルトはprocess.execPath
args
文字列配列(オプション) Windows - デフォルトは空の配列
戻り値 boolean
- 呼び出しが成功したかどうか。
このメソッドは、現在の実行ファイルがプロトコル(別名URIスキーム)のデフォルトハンドラーかどうかを確認します。もしそうであれば、アプリをデフォルトハンドラーから削除します。
app.isDefaultProtocolClient(protocol[, path, args])
protocol
文字列 - プロトコルの名前(://
を除く)。path
文字列(オプション) Windows - デフォルトはprocess.execPath
args
文字列配列(オプション) Windows - デフォルトは空の配列
戻り値 boolean
- 現在の実行ファイルがプロトコル(別名URIスキーム)のデフォルトハンドラーかどうか。
注記: macOSでは、このメソッドを使用して、アプリがプロトコルのデフォルトプロトコルハンドラーとして登録されているかどうかを確認できます。macOSマシンの~/Library/Preferences/com.apple.LaunchServices.plist
を確認することでも検証できます。詳細はAppleのドキュメントを参照してください。
このAPIは内部的にWindowsレジストリとLSCopyDefaultHandlerForURLScheme
を使用しています。
app.getApplicationNameForProtocol(url)
url
文字列 - 確認するプロトコル名を含むURL。このファミリの他のメソッドとは異なり、これは://
を含む完全なURLを受け入れます(例:https://
)。
戻り値 string
- プロトコルを処理するアプリケーションの名前。ハンドラーがない場合は空文字列を返します。例えば、ElectronがURLのデフォルトハンドラーの場合、WindowsとMacではElectron
になる可能性があります。ただし、正確な形式は変更されないとは限らないため、正確な形式に依存しないでください。Linuxでは異なる形式になる可能性があり、.desktop
サフィックスが付く場合があります。
このメソッドは、URLのプロトコル(別名URIスキーム)のデフォルトハンドラーのアプリケーション名を返します。
app.getApplicationInfoForProtocol(url)
macOS Windows
url
文字列 - 確認するプロトコル名を含むURL。このファミリの他のメソッドとは異なり、これは://
を含む完全なURLを受け入れます(例:https://
)。
戻り値 Promise<Object>
- 次を含むオブジェクトを解決します
icon
NativeImage - プロトコルを処理するアプリの表示アイコン。path
文字列 - プロトコルを処理するアプリのインストールパス。name
文字列 - プロトコルを処理するアプリの表示名。
このメソッドは、URLのプロトコル(別名URIスキーム)のデフォルトハンドラーのアプリケーション名、アイコン、パスを含むPromiseを返します。
app.setUserTasks(tasks)
Windows
tasks
Task[] -Task
オブジェクトの配列
Windowsのジャンプリストの「タスク」カテゴリにtasks
を追加します。タスク
tasks
はTaskオブジェクトの配列です。
戻り値 boolean
- 呼び出しが成功したかどうか。
注記: ジャンプリストをさらにカスタマイズする場合は、代わりにapp.setJumpList(categories)
を使用してください。
app.getJumpListSettings()
Windows
戻り値 Object
minItems
整数 - ジャンプリストに表示される最小項目数(この値の詳細については、MSDNドキュメントを参照してください)。removedItems
JumpListItem[] - ユーザーがジャンプリストのカスタムカテゴリから明示的に削除した項目に対応するJumpListItem
オブジェクトの配列。これらの項目は、app.setJumpList()
への**次の**呼び出しでジャンプリストに再追加してはなりません。Windowsは、削除された項目を含むカスタムカテゴリを1つも表示しません。
app.setJumpList(categories)
Windows
categories
JumpListCategory[] |null
-JumpListCategory
オブジェクトの配列。
戻り値 string
アプリケーションのカスタムジャンプリストを設定または削除し、次の文字列のいずれかを返します。
ok
- 問題ありませんでした。error
- 1つ以上のエラーが発生しました。原因を特定するには、ランタイムロギングを有効にしてください。invalidSeparatorError
- ジャンプリストのカスタムカテゴリにセパレータを追加しようとしました。セパレータは標準のTasks
カテゴリでのみ許可されます。fileTypeRegistrationError
- アプリが処理するように登録されていないファイルタイプについて、ジャンプリストにファイルリンクを追加しようとしました。customCategoryAccessDeniedError
- ユーザーのプライバシー設定またはグループポリシー設定により、ジャンプリストにカスタムカテゴリを追加できません。
categories
がnull
の場合、以前設定されていたカスタムジャンプリスト(存在する場合)は、アプリの標準ジャンプリスト(Windowsによって管理)に置き換えられます。
注記: JumpListCategory
オブジェクトにtype
プロパティとname
プロパティのどちらも設定されていない場合、そのtype
はtasks
と見なされます。name
プロパティが設定されているがtype
プロパティが省略されている場合、type
はcustom
と見なされます。
注記: ユーザーはカスタムカテゴリから項目を削除できます。削除された項目は、app.setJumpList(categories)
への次の成功した呼び出しの後でなければ、カスタムカテゴリに再追加できません。それより前に削除された項目をカスタムカテゴリに再追加しようとすると、カスタムカテゴリ全体がジャンプリストから省略されます。削除された項目の一覧は、app.getJumpListSettings()
を使用して取得できます。
注記: ジャンプリスト項目のdescription
プロパティの最大長は260文字です。この制限を超えると、項目はジャンプリストに追加されず、表示されません。
カスタムジャンプリストを作成する非常に簡単な例を次に示します。
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',
iconPath: process.execPath,
iconIndex: 0,
description: 'Runs Tool A'
},
{
type: 'task',
title: 'Tool B',
program: process.execPath,
args: '--run-tool-b',
iconPath: 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> (オプション) - 最初のインスタンスに送信する追加データを含むJSONオブジェクト。
戻り値 boolean
このメソッドの戻り値は、アプリケーションのこのインスタンスがロックを正常に取得したかどうかを示します。ロックの取得に失敗した場合、アプリケーションの別のインスタンスが既にロックを取得して実行されていると想定し、すぐに終了できます。
つまり、このメソッドは、プロセスがアプリケーションのプライマリインスタンスであり、アプリの読み込みを続ける必要がある場合にtrue
を返します。ロックを既に取得した別のインスタンスにパラメーターを送信したため、プロセスをすぐに終了する必要がある場合はfalse
を返します。
macOSでは、ユーザーがFinderでアプリの2番目のインスタンスを開こうとしたときに、システムが自動的にシングルインスタンスを強制し、そのためにopen-file
イベントとopen-url
イベントが発行されます。ただし、ユーザーがコマンドラインでアプリを起動した場合、システムのシングルインスタンスメカニズムはバイパスされ、シングルインスタンスを確保するためにこのメソッドを使用する必要があります。
セカンダリインスタンス起動時のプライマリインスタンスウィンドウの有効化例
const { app, BrowserWindow } = 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)
// Someone tried to run a second instance, we should focus our window.
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore()
myWindow.focus()
}
})
app.whenReady().then(() => {
myWindow = new BrowserWindow({})
myWindow.loadURL('https://electron.dokyumento.jp')
})
}
app.hasSingleInstanceLock()
戻り値 boolean
このメソッドは、アプリのこのインスタンスがシングルインスタンスロックを保持しているかどうかを返します。ロックはapp.requestSingleInstanceLock()
で要求し、app.releaseSingleInstanceLock()
で解放できます。
app.releaseSingleInstanceLock()
requestSingleInstanceLock
で作成されたすべてのロックを解放します。これにより、アプリケーションの複数のインスタンスが再び並行して実行できるようになります。
app.setUserActivity(type, userInfo[, webpageURL])
macOS
type
string - アクティビティを一意に識別します。NSUserActivity.activityType
にマップされます。userInfo
any - 別のデバイスで使用するために保存するアプリ固有の状態。webpageURL
string (optional) - 適切なアプリが再開デバイスにインストールされていない場合にブラウザで読み込むWebページ。スキームはhttp
またはhttps
である必要があります。
NSUserActivity
を作成し、それを現在のアクティビティとして設定します。このアクティビティは、その後、別のデバイスへのHandoffの対象となります。
app.getCurrentActivityType()
macOS
string
を返します - 現在実行中のアクティビティのタイプ。
app.invalidateCurrentActivity()
macOS
現在のアクティビティを無効にします。Handoff
app.resignCurrentActivity()
macOS
現在のアクティビティを無効にすることなく、非アクティブとしてマークします。Handoff
app.updateCurrentActivity(type, userInfo)
macOS
type
string - アクティビティを一意に識別します。NSUserActivity.activityType
にマップされます。userInfo
any - 別のデバイスで使用するために保存するアプリ固有の状態。
タイプがtype
と一致する場合、現在のアクティビティを更新し、userInfo
のエントリを現在userInfo
辞書にマージします。
app.setAppUserModelId(id)
Windows
id
string
Application User Model IDをid
に変更します。
app.setActivationPolicy(policy)
macOS
policy
string - 'regular'、'accessory'、または'prohibited'のいずれか。
指定されたアプリの有効化ポリシーを設定します。
有効化ポリシーの種類
- 'regular' - アプリケーションは、Dockに表示され、ユーザーインターフェースを持つ可能性のある通常のアプリです。
- 'accessory' - アプリケーションはDockに表示されず、メニューバーもありませんが、プログラムによって、またはウィンドウのいずれかをクリックすることで有効化される場合があります。
- 'prohibited' - アプリケーションはDockに表示されず、ウィンドウを作成したり、有効化したりすることはできません。
app.importCertificate(options, callback)
Linux
callback
Functionresult
Integer - インポートの結果。
PKCS12形式の証明書をプラットフォーム証明書ストアにインポートします。callback
はインポート操作のresult
で呼び出されます。値が0
の場合は成功を示し、それ以外の値はChromiumのnet_error_listに従って失敗を示します。
app.configureHostResolver(options)
ホスト解決(DNSとDNS-over-HTTPS)を設定します。デフォルトでは、次のリゾルバーが順番に使用されます。
- DNSプロバイダーがサポートしている場合、DNS-over-HTTPS。
- 組み込みリゾルバー(macOSでのみデフォルトで有効)。
- システムのリゾルバー(例:
getaddrinfo
)。
これは、暗号化されていないDNSの使用を制限する(secureDnsMode: "secure"
)か、DNS-over-HTTPSを無効にする(secureDnsMode: "off"
)ように設定できます。組み込みリゾルバーの有効化または無効化も可能です。
安全ではないDNSを無効にするには、secureDnsMode
を"secure"
に指定します。そのようにする場合、ユーザーのDNS構成にDoHをサポートするプロバイダーが含まれていない場合に備え、使用するDNS-over-HTTPSサーバーのリストを提供する必要があります。
const { app } = require('electron')
app.whenReady().then(() => {
app.configureHostResolver({
secureDnsMode: 'secure',
secureDnsServers: [
'https://cloudflare-dns.com/dns-query'
]
})
})
このAPIは、ready
イベントが発行された後呼び出す必要があります。
app.disableHardwareAcceleration()
現在アプリのハードウェアアクセラレーションを無効にします。
このメソッドは、アプリの準備が整う前にのみ呼び出すことができます。
app.disableDomainBlockingFor3DAPIs()
デフォルトでは、ChromiumはGPUプロセスが頻繁にクラッシュする場合、ドメインごとに再起動するまで3D API(例:WebGL)を無効にします。この関数は、その動作を無効にします。
このメソッドは、アプリの準備が整う前にのみ呼び出すことができます。
app.getAppMetrics()
ProcessMetric[]を返します: アプリに関連付けられたすべてのプロセスのメモリとCPU使用率統計に対応するProcessMetric
オブジェクトの配列。
app.getGPUFeatureStatus()
GPUFeatureStatusを返します - chrome://gpu/
からのグラフィック機能の状態。
注記: この情報は、gpu-info-update
イベントが発行された後でのみ使用できます。
app.getGPUInfo(infoType)
infoType
string -basic
またはcomplete
のいずれか。
Promise<unknown>
を返します
infoType
がcomplete
の場合:プロミスはchromiumのGPUInfoオブジェクトにあるすべてのGPU情報を含むObject
で解決されます。これには、chrome://gpu
ページに表示されるバージョンとドライバーの情報が含まれます。
infoType
がbasic
の場合:プロミスは、complete
で要求した場合よりも属性の少ないObject
で解決されます。基本的な応答の例を以下に示します。
{
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'
}
vendorId
やdeviceId
などの基本的な情報のみが必要な場合は、basic
の使用を優先する必要があります。
app.setBadgeCount([count])
Linux macOS
count
整数 (オプション) - 値が指定された場合、バッジにその値を設定します。指定されない場合、macOSでは白い点が表示され(通知数の不明を示します)、Linuxではバッジは表示されません。
戻り値 boolean
- 呼び出しが成功したかどうか。
現在のアプリケーションのカウントバッジを設定します。count
を0
に設定すると、バッジが非表示になります。
macOSではDockアイコンに表示されます。Linuxでは、Unityランチャーでのみ機能します。
注記: Unityランチャーは動作に.desktop
ファイルが必要です。詳細については、Unity統合ドキュメントをご覧ください。
注記: macOSでは、このメソッドが機能するには、アプリケーションに通知を表示する権限が必要です。
app.getBadgeCount()
Linux macOS
整数
を返します - カウントバッジに表示されている現在の値。
app.isUnityRunning()
Linux
boolean
を返します - 現在のデスクトップ環境がUnityランチャーかどうか。
app.getLoginItemSettings([options])
macOS Windows
app.setLoginItemSettings
にpath
とargs
オプションを指定した場合、openAtLogin
を正しく設定するには、ここで同じ引数を渡す必要があります。
戻り値 Object
openAtLogin
ブーリアン - アプリケーションがログイン時に開く設定になっている場合true
。openAsHidden
ブーリアン macOS 非推奨 - アプリケーションがログイン時に非表示で開く設定になっている場合true
。macOS 13以降では動作しません。wasOpenedAtLogin
ブーリアン macOS - アプリケーションが自動的にログイン時に開かれた場合true
。wasOpenedAsHidden
ブーリアン macOS 非推奨 - アプリケーションが非表示のログインアイテムとして開かれた場合true
。これは、アプリケーションが起動時にウィンドウを開かないことを示します。この設定は、MASビルドまたはmacOS 13以降では使用できません。restoreState
ブーリアン macOS 非推奨 - 前回のセッションからの状態を復元する必要があるログインアイテムとしてアプリケーションが開かれた場合true
。これは、アプリケーションが最後に閉じられたときに開いていたウィンドウを復元する必要があることを示します。この設定は、MASビルドまたはmacOS 13以降では使用できません。status
文字列 macOS -not-registered
、enabled
、requires-approval
、not-found
のいずれかになります。executableWillLaunchAtLogin
ブーリアン Windows - アプリがログイン時に開く設定になっており、その実行キーが無効になっていない場合true
。args
オプションを無視するためopenAtLogin
とは異なります。指定された実行ファイルが **任意の** 引数でログイン時に起動される場合、このプロパティはtrueになります。launchItems
オブジェクト配列 Windowsname
文字列 Windows - レジストリエントリのname値。path
文字列 Windows - レジストリエントリに対応するアプリの実行ファイル。args
文字列配列 Windows - 実行ファイルに渡すコマンドライン引数。scope
文字列 Windows -user
またはmachine
のいずれか。レジストリエントリがHKEY_CURRENT_USER
またはHKEY_LOCAL_MACHINE
の下にあるかどうかを示します。enabled
ブーリアン Windows - アプリのレジストリキーがスタートアップ承認されており、タスクマネージャーとWindowsの設定でenabled
として表示される場合true
。
app.setLoginItemSettings(settings)
macOS Windows
settings
オブジェクトopenAtLogin
ブーリアン (オプション) - ログイン時にアプリを開く場合true
、ログインアイテムからアプリを削除する場合false
。デフォルトはfalse
。openAsHidden
ブーリアン (オプション) macOS 非推奨 - 非表示でアプリを開く場合true
。デフォルトはfalse
。ユーザーはシステム環境設定からこの設定を編集できるため、アプリが開かれたときにapp.getLoginItemSettings().wasOpenedAsHidden
をチェックして現在の値を確認する必要があります。この設定は、MASビルドまたはmacOS 13以降では使用できません。type
文字列 (オプション) macOS - ログインアイテムとして追加するサービスの種類。デフォルトはmainAppService
です。macOS 13以降でのみ使用可能です。mainAppService
- プライマリアプリケーション。agentService
- Launch Agentのプロパティリスト名。プロパティリスト名は、アプリのContents/Library/LaunchAgents
ディレクトリ内のプロパティリストに対応している必要があります。daemonService
文字列 (オプション) macOS - Launch Daemonのプロパティリスト名。プロパティリスト名は、アプリのContents/Library/LaunchDaemons
ディレクトリ内のプロパティリストに対応している必要があります。loginItemService
文字列 (オプション) macOS - ログインアイテムサービスのプロパティリスト名。プロパティリスト名は、アプリのContents/Library/LoginItems
ディレクトリ内のプロパティリストに対応している必要があります。
serviceName
文字列 (オプション) macOS - サービスの名前。type
がデフォルト以外の場合に必要です。macOS 13以降でのみ使用可能です。path
文字列 (オプション) Windows - ログイン時に起動する実行ファイル。デフォルトはprocess.execPath
です。args
文字列配列 (オプション) Windows - 実行ファイルに渡すコマンドライン引数。デフォルトは空の配列です。パスを引用符で囲むように注意してください。enabled
ブーリアン (オプション) Windows -true
はスタートアップ承認されたレジストリキーを変更し、タスクマネージャーとWindowsの設定でアプリを有効/無効にします。デフォルトはtrue
。name
文字列 (オプション) Windows - レジストリに書き込む値の名前。アプリのAppUserModelId()がデフォルトです。
アプリのログインアイテム設定を設定します。
Squirrel を使用するWindows上のElectronのautoUpdater
を操作するには、起動パスをUpdate.exeに設定し、アプリケーション名を指定する引数を渡す必要があります。例えば
const { app } = require('electron')
const path = require('node:path')
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"'
]
})
macOS 13以降で異なるサービスをログインアイテムとして設定する方法の詳細については、SMAppService
を参照してください。
app.isAccessibilitySupportEnabled()
macOS Windows
boolean
を返します - Chromeのアクセシビリティサポートが有効な場合true
、そうでない場合false
。スクリーンリーダーなどの支援技術の使用が検出された場合、このAPIはtrue
を返します。詳細については、https://www.chromium.org/developers/design-documents/accessibilityを参照してください。
app.setAccessibilitySupportEnabled(enabled)
macOS Windows
enabled
ブーリアン - アクセシビリティツリーのレンダリングを有効または無効にします。
Chromeのアクセシビリティサポートを手動で有効にし、アプリケーション設定でユーザーにアクセシビリティスイッチを公開できるようにします。詳細については、Chromiumのアクセシビリティドキュメントを参照してください。デフォルトでは無効になっています。
このAPIは、ready
イベントが発行された後呼び出す必要があります。
注記: アクセシビリティツリーのレンダリングは、アプリのパフォーマンスに大きな影響を与える可能性があります。デフォルトで有効にするべきではありません。
app.showAboutPanel()
アプリの「バージョン情報」パネルオプションを表示します。これらのオプションは、app.setAboutPanelOptions(options)
で上書きできます。この関数は非同期的に実行されます。
app.setAboutPanelOptions(options)
「バージョン情報」パネルのオプションを設定します。これにより、macOSのアプリの.plist
ファイルで定義されている値が上書きされます。詳細については、Appleのドキュメントを参照してください。Linuxでは、表示するには値を設定する必要があります。デフォルト値はありません。
credits
を設定しない場合でも、アプリ内でクレジットを表示したい場合は、AppKit は `NSBundle` クラスメソッド `main` が返すバンドル内で、"Credits.html"、"Credits.rtf"、"Credits.rtfd" の順にファイルを検索します。最初に検出されたファイルが使用され、いずれも見つからない場合は、情報領域は空白のままになります。詳細は、Apple のドキュメントを参照してください。
app.isEmojiPanelSupported()
現在のOSバージョンがネイティブの絵文字ピッカーを許可するかどうかを返す `boolean` 型の値です。
app.showEmojiPanel()
macOS Windows
プラットフォームのネイティブ絵文字ピッカーを表示します。
app.startAccessingSecurityScopedResource(bookmarkData)
MAS
bookmarkData
文字列 -dialog.showOpenDialog
またはdialog.showSaveDialog
メソッドによって返される、Base64 エンコードされたセキュリティスコープブックマークデータ。
セキュリティスコープファイルへのアクセスが完了したら、この関数を**必ず**呼び出す必要があります。ブックマークへのアクセスを停止するのを忘れると、カーネルリソースがリークし、アプリがサンドボックスの外にアクセスできなくなり、アプリを再起動するまでその状態が続きます。
const { app, dialog } = require('electron')
const fs = require('node:fs')
let filepath
let bookmark
dialog.showOpenDialog(null, { securityScopedBookmarks: true }).then(({ filePaths, bookmarks }) => {
filepath = filePaths[0]
bookmark = bookmarks[0]
fs.readFileSync(filepath)
})
// ... restart app ...
const stopAccessingSecurityScopedResource = app.startAccessingSecurityScopedResource(bookmark)
fs.readFileSync(filepath)
stopAccessingSecurityScopedResource()
セキュリティスコープリソースへのアクセスを開始します。このメソッドを使用すると、Mac App Store向けにパッケージ化されたElectronアプリケーションは、サンドボックスの外側にアクセスして、ユーザーが選択したファイルにアクセスできます。このシステムの動作については、Apple のドキュメントを参照してください。
app.enableSandbox()
アプリで完全なサンドボックスモードを有効にします。これは、WebPreferences
の sandbox
フラグの値に関係なく、すべてのレンダラーがサンドボックス化されて起動されることを意味します。
このメソッドは、アプリの準備が整う前にのみ呼び出すことができます。
app.isInApplicationsFolder()
macOS
`boolean` 型の値を返します。アプリケーションが現在、システムのアプリケーションフォルダから実行されているかどうかを示します。app.moveToApplicationsFolder()
と組み合わせて使用します。
app.moveToApplicationsFolder([options])
macOS
`boolean` 型の値を返します。移動が成功したかどうかを示します。移動が成功した場合、アプリケーションは終了して再起動することに注意してください。
デフォルトでは、確認ダイアログは表示されません。ユーザーに操作を確認させたい場合は、dialog
API を使用して確認ダイアログを表示できます。
**注:** ユーザー以外の原因で移動が失敗した場合、このメソッドはエラーをスローします。たとえば、ユーザーが承認ダイアログをキャンセルした場合、このメソッドは false を返します。コピーを実行できない場合、このメソッドはエラーをスローします。エラー内のメッセージは有益で、何が間違っていたかを正確に伝える必要があります。
デフォルトでは、移動しようとしているアプリと同じ名前のアプリがアプリケーションディレクトリに存在し、*実行中ではない*場合、既存のアプリはゴミ箱に移動され、アクティブなアプリがその場所に移動されます。*実行中である*場合、既存の実行中のアプリがフォーカスを取得し、以前アクティブだったアプリはそれ自体を終了します。この動作は、オプションの競合ハンドラーを提供することで変更できます。ハンドラーによって返されるブール値は、移動競合がデフォルトの動作で解決されるかどうかを決定します。つまり、`false` を返すことで、それ以上の処理が行われなくなり、`true` を返すことで、デフォルトの動作になり、メソッドが続行されます。
例:
const { app, dialog } = require('electron')
app.moveToApplicationsFolder({
conflictHandler: (conflictType) => {
if (conflictType === 'exists') {
return dialog.showMessageBoxSync({
type: 'question',
buttons: ['Halt Move', 'Continue Move'],
defaultId: 0,
message: 'An app of this name already exists'
}) === 1
}
}
})
ユーザーディレクトリに既にアプリが存在する場合、「移動を続行」を選択すると、関数はデフォルトの動作で続行され、既存のアプリはゴミ箱に移動され、アクティブなアプリがその場所に移動されます。
app.isSecureKeyboardEntryEnabled()
macOS
`boolean` 型の値を返します。「セキュアキーボード入力」が有効になっているかどうかを示します。
デフォルトでは、このAPIは`false`を返します。
app.setSecureKeyboardEntryEnabled(enabled)
macOS
enabled
boolean - 「セキュアキーボード入力」を有効または無効にします。
アプリケーションで「セキュアキーボード入力」を有効または無効にします。
このAPIを使用することで、パスワードなどの重要な情報が他のプロセスによって傍受されるのを防ぐことができます。
詳細は、Apple のドキュメントを参照してください。
**注:** 「セキュアキーボード入力」は必要な場合にのみ有効にし、不要になったら無効にしてください。
app.setProxy(config)
config
ProxyConfig
`Promise<void>` を返します - プロキシ設定プロセスが完了すると解決されます。
関連付けられた Session がないネットワークリクエストのプロキシ設定を設定します。現在、これは ユーティリティプロセス の Net で行われたリクエストと、ランタイムによって行われた内部リクエスト(例:位置情報クエリ)に影響します。
このメソッドは、アプリの準備が完了した後にのみ呼び出すことができます。
app.resolveProxy(url)
url
URL
`Promise<string>` を返します - ユーティリティプロセス の Net を使用してリクエストを試行するときに使用される `url` のプロキシ情報を解決します。
プロパティ
app.accessibilitySupportEnabled
macOS Windows
`boolean` 型のプロパティです。Chrome のアクセシビリティサポートが有効になっている場合は `true`、そうでない場合は `false` になります。スクリーンリーダーなどの支援技術の使用が検出された場合、このプロパティは `true` になります。このプロパティを手動で `true` に設定すると、Chrome のアクセシビリティサポートが有効になり、開発者はアプリケーション設定でユーザーにアクセシビリティスイッチを公開できます。
詳細は、Chromium のアクセシビリティに関するドキュメントを参照してください。デフォルトでは無効になっています。
このAPIは、ready
イベントが発行された後呼び出す必要があります。
注記: アクセシビリティツリーのレンダリングは、アプリのパフォーマンスに大きな影響を与える可能性があります。デフォルトで有効にするべきではありません。
app.applicationMenu
`Menu | null` 型のプロパティです。メニューが設定されている場合は Menu
を返し、そうでない場合は `null` を返します。ユーザーは Menu を渡してこのプロパティを設定できます。
app.badgeCount
Linux macOS
`Integer` 型のプロパティです。現在のアプリのバッジカウントを返します。カウントを `0` に設定すると、バッジは非表示になります。
macOS では、0 以外の整数に設定すると、Dock アイコンに表示されます。Linux では、このプロパティは Unity ランチャーでのみ機能します。
注記: Unityランチャーは動作に.desktop
ファイルが必要です。詳細については、Unity統合ドキュメントをご覧ください。
**注:** macOS では、このプロパティを有効にするには、アプリケーションに通知を表示する権限があることを確認する必要があります。
app.commandLine
読み取り専用
Chromium が使用するコマンドライン引数を閲覧および操作できる CommandLine
オブジェクトです。
app.dock
macOS 読み取り専用
macOS でユーザーの Dock にあるアプリアイコンで操作を実行できる Dock
`| undefined` オブジェクトです。
app.isPackaged
読み取り専用
`boolean` 型のプロパティです。アプリがパッケージ化されている場合は `true`、そうでない場合は `false` を返します。多くのアプリでは、このプロパティを使用して開発環境と本番環境を区別できます。
app.name
`string` 型のプロパティです。アプリケーションの `package.json` ファイルの名前である、現在のアプリケーションの名前を示します。
通常、package.json
のname
フィールドは、npmモジュール仕様に従って短い小文字の名前です。通常はproductName
フィールドも指定する必要があります。これはアプリケーションの完全な大文字の名前で、Electronではname
よりも優先されます。
app.userAgentFallback
`string` 型です。Electron がグローバルなフォールバックとして使用するユーザーエージェント文字列です。
これは、`webContents` または `session` レベルでユーザーエージェントが設定されていない場合に使用されるユーザーエージェントです。アプリ全体で同じユーザーエージェントを使用することを保証するのに役立ちます。上書きした値が使用されるように、アプリの初期化でできるだけ早くカスタム値に設定してください。
app.runningUnderARM64Translation
読み取り専用 macOS Windows
`boolean` 型です。`true` の場合、アプリが現在 ARM64 トランスレーター(macOS の Rosetta トランスレーター環境 や Windows の WOW など)で実行されていることを示します。
このプロパティを使用して、ユーザーが誤って Rosetta または WOW で x64 バージョンを実行している場合に、arm64 バージョンのアプリケーションをダウンロードするように促すことができます。