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'â
æ»ãå¤:
eventEventlaunchInfoRecord<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'â
æ»ãå¤:
eventEvent
ã¢ããªã±ã¼ã·ã§ã³ãã¦ã£ã³ãã¦ãéãå§ããåã«çºçãã¾ãã event.preventDefault() ãå¼ã³åºããã¨ã§ãã¢ããªã±ã¼ã·ã§ã³ãçµäºããæ¢å®ã®åä½ãé»å®³ã§ãã¾ãã
[!NOTE] ã¢ããªã±ã¼ã·ã§ã³ã®çµäºã
autoUpdater.quitAndInstall()ã«ãã£ã¦éå§ãããå ´åãå ¨ã¦ã®ã¦ã¤ã³ãã¦ã§closeã¤ãã³ããçºçãããããããéããå¾ ã«before-quitãçºçãã¾ãã
[!NOTE] Windows ã§ã¯ããã®ã¤ãã³ãã¯ã·ã¹ãã ã®ã·ã£ãããã¦ã³/åèµ·åãã¦ã¼ã¶ã¼ã®ãã°ã¢ã¦ãã§ã¢ããªã±ã¼ã·ã§ã³ãéãããããã¨ãã¦ããå ´åã«ã¯çºçãã¾ããã
ã¤ãã³ã: 'will-quit'â
æ»ãå¤:
eventEvent
ãã¹ã¦ã®ã¦ã£ã³ãã¦ãéããããã¢ããªãçµäºãããã¨ãã¦ããã¨ãã«çºçãã¾ãã event.preventDefault() ãå¼ã³åºããã¨ã§ãã¢ããªã±ã¼ã·ã§ã³ãçµäºããæ¢å®ã®åä½ãé»å®³ã§ãã¾ãã
will-quit 㨠window-all-closed ã¤ãã³ãã®å·®ç°ã確èªããããã«ã¯ãwindow-all-closed ã¤ãã³ãã®èª¬æããèªã¿ãã ããã
[!NOTE] Windows ã§ã¯ããã®ã¤ãã³ãã¯ã·ã¹ãã ã®ã·ã£ãããã¦ã³/åèµ·åãã¦ã¼ã¶ã¼ã®ãã°ã¢ã¦ãã§ã¢ããªã±ã¼ã·ã§ã³ãéãããããã¨ãã¦ããå ´åã«ã¯çºçãã¾ããã
ã¤ãã³ã: 'quit'â
æ»ãå¤:
eventEventexitCodeInteger
ã¢ããªã±ã¼ã·ã§ã³ãçµäºããã¨ãã«çºçãã¾ãã
[!NOTE] Windows ã§ã¯ããã®ã¤ãã³ãã¯ã·ã¹ãã ã®ã·ã£ãããã¦ã³/åèµ·åãã¦ã¼ã¶ã¼ã®ãã°ã¢ã¦ãã§ã¢ããªã±ã¼ã·ã§ã³ãéãããããã¨ãã¦ããå ´åã«ã¯çºçãã¾ããã
ã¤ãã³ã: 'open-file' macOSâ
æ»ãå¤:
eventEventpathstring
ã¦ã¼ã¶ãã¢ããªã±ã¼ã·ã§ã³ã§ãã¡ã¤ã«ãéããã¨ããã¨ãã«çºçãã¾ãã open-file ã¤ãã³ãã¯ã大æµã®å ´åãã¡ã¤ã«ãã¢ããªã±ã¼ã·ã§ã³ãæ¢ã«éãã¦ãã¦ãOS ãéãããã«åå©ç¨ãããã¨ããã¨ãã«çºçãã¾ãã open-file ã¯ãDock ã«ãã¡ã¤ã«ãããããããã¦ãã¢ããªã±ã¼ã·ã§ã³ãã¾ã èµ·åãã¦ããªãã¨ãã«ãçºçãã¾ãã ãã®ãããªã±ã¼ã¹ã«å¯¾å¦ããããã«ãã¢ããªã±ã¼ã·ã§ã³èµ·åæã®éå¸¸ã«æ©ã段é ( ready ã¤ãã³ããçºçãããããå) ã§ open-file ã¤ãã³ããç£è¦ããããã«ãã¦ãã ããã
ãã®ã¤ãã³ããå¦çããå ´åãevent.preventDefault() ãå¼ã³åºãå¿
è¦ãããã¾ãã
Windows ã§ã¯ããã¡ã¤ã«ãã¹ãåå¾ããããã« (ã¡ã¤ã³ããã»ã¹ã®) process.argv ããã¼ã¹ããªããã°ãªãã¾ããã
ã¤ãã³ã: 'open-url' macOSâ
æ»ãå¤:
eventEventurlstring
ã¦ã¼ã¶ããã®ã¢ããªã±ã¼ã·ã§ã³ã§ URL ãéããã¨ããã¨ãã«çºçãã¾ãã ã¢ããªã±ã¼ã·ã§ã³ã® Info.plist ãã¡ã¤ã«ã§ CFBundleURLTypes ãã¼ã®ä¸ã« URL ã¹ãã¼ã ãå®ç¾©ããNSPrincipalClass ã« AtomApplication ãè¨å®ããªããã°ãªãã¾ããã
open-file ã¤ãã³ãã¨åæ§ã«ãã¢ããªã±ã¼ã·ã§ã³ã®èµ·åæã« open-url ã¤ãã³ãã®ãªã¹ãã¼ãå¿
ãç»é²ããã¢ããªã±ã¼ã·ã§ã³ã URL ã®ãã³ããªã³ã°ã¨ãã¦éããã¦ãããã©ãããæ¤åºããããã«ãã¦ãã ããã ready ã¤ãã³ãã®å¿çã§ãªã¹ãã¼ãç»é²ããã¨ãã¢ããªã±ã¼ã·ã§ã³èµ·åã®ããªã¬ã¼ã¨ãªã£ã URL ãéããã¨ã«ãªãã¾ãã
ã¤ãã³ã: 'activate' macOSâ
æ»ãå¤:
eventEventhasVisibleWindowsboolean
ã¢ããªã±ã¼ã·ã§ã³ãã¢ã¯ãã£ãã«ãªã£ãã¨ãã«çºçãã¾ãã ã¢ããªã±ã¼ã·ã§ã³ãæåã«èµ·åããããæ¢ã«å®è¡ä¸ã®ã¨ãã«ã¢ããªã±ã¼ã·ã§ã³ãåèµ·åãããã¨ãããã¢ããªã±ã¼ã·ã§ã³ã®ããã¯ãã¿ã¹ã¯ãã¼ã®ã¢ã¤ã³ã³ãã¯ãªãã¯ãããªã©ããããããªã¢ã¯ã·ã§ã³ããã®ã¤ãã³ãã®å¼ãéã¨ãªãå¾ã¾ãã
ã¤ãã³ã: 'did-become-active' macOSâ
æ»ãå¤:
eventEvent
ã¢ããªã±ã¼ã·ã§ã³ãã¢ã¯ãã£ãã«ãªã£ãã¨ãã«çºçãã¾ãã did-become-active 㯠activate ã¤ãã³ãã¨ç°ãªããã¢ããªãã¢ã¯ãã£ãã«ãªãã¨ãã ãã§ãªããDock ã¢ã¤ã³ã³ãã¯ãªãã¯ãããæãã¢ããªã±ã¼ã·ã§ã³ãåèµ·åããæã«ãçºçãã¾ãã ã¾ããã¦ã¼ã¶ã¼ã macOS ã®ã¢ããªåãæ¿ãã§ãã®ã¢ããªã¸ã¨åãæ¿ããã¨ãã«ãçºçãã¾ãã
ã¤ãã³ã: 'did-resign-active' macOSâ
æ»ãå¤:
eventEvent
ã¢ããªãã¢ã¯ãã£ãã§ãªããªãããã©ã¼ã«ã¹ããªããªã£ãã¨ãã«çºçãã¾ãã ããã¯ä¾ãã°ãä»ã®ã¢ããªã±ã¼ã·ã§ã³ãã¯ãªãã¯ããããmacOS ã®ã¢ããªåãæ¿ãã§ä»ã®ã¢ããªã±ã¼ã·ã§ã³ã¸åãæ¿ãããããã¨çºçãã¾ãã
ã¤ãã³ã: 'continue-activity' macOSâ
æ»ãå¤:
eventEventtypestring - ã¢ã¯ãã£ããã£ãèå¥ããæååã Maps toNSUserActivity.activityType.userInfounknown - å¥ã®ããã¤ã¹ã®ã¢ã¯ãã£ããã£ã«ãã£ã¦ä¿åãããã¢ããªåºæã®æ å ±ãå«ã¾ãã¦ãã¾ããdetailsObjectwebpageURLstring (ä»»æ) - å©ç¨å¯è½ãªå ´åãå¥ããã¤ã¹ä¸ã®æä½ã§ã¢ã¯ã»ã¹ããã¦ã§ããã¼ã¸ã® URL ãç¹å®ããæååã«ãªãã¾ãã
Handoff ä¸ãå¥ã®ããã¤ã¹ã§ã¢ã¯ãã£ããã£ãåéããããã¨ããéã«çºçãã¾ãã ãã®ã¤ãã³ããå¦çããå ´åãevent.preventDefault() ãå¼ã³åºãå¿
è¦ãããã¾ãã
ã¦ã¼ã¶ã®ã¢ã¯ãã£ããã£ã¯ã¢ã¯ãã£ããã£å
ã®ã¢ããªã¨åä¸ã®éçºè
ãã¼ã IDãæã¡ãã¢ã¯ãã£ããã£ã¿ã¤ãããµãã¼ãããã¢ããªã§ããç¶ç¶ããããã¨ãã§ãã¾ããã ãµãã¼ããããã¢ã¯ãã£ããã£ã¿ã¤ãã¯ãã¢ããªã® Info.plist ã® NSUserActivityTypes ãã¼ã§æå®ããã¦ãã¾ãã
ã¤ãã³ã: 'will-continue-activity' macOSâ
æ»ãå¤:
eventEventtypestring - ã¢ã¯ãã£ããã£ãèå¥ããæååã Maps toNSUserActivity.activityType.
Handoff ä¸ã«ãç°ãªãããã¤ã¹ã§ã¢ã¯ãã£ããã£ãåéãããåã«çºçãã¾ãã ãã®ã¤ãã³ããå¦çããå ´åãevent.preventDefault() ãå¼ã³åºãå¿
è¦ãããã¾ãã
ã¤ãã³ã: 'continue-activity-error' macOSâ
æ»ãå¤:
eventEventtypestring - ã¢ã¯ãã£ããã£ãèå¥ããæååã Maps toNSUserActivity.activityType.errorstring - ã¨ã©ã¼ã®ãã¼ã«ã©ã¤ãºããã説æã¨ãã¦ã®æååã
Handoff ä¸ã«ãç°ãªãããã¤ã¹ã§ã¢ã¯ãã£ããã£ã®åéã«å¤±æããã¨ãã«çºçãã¾ãã
ã¤ãã³ã: 'activity-was-continued' macOSâ
æ»ãå¤:
eventEventtypestring - ã¢ã¯ãã£ããã£ãèå¥ããæååã Maps toNSUserActivity.activityType.userInfounknown - ã¢ã¯ãã£ããã£ã«ãã£ã¦ä¿åãããã¢ããªåºæã®æ å ±ãå«ã¾ãã¦ãã¾ãã
Handoff ä¸ãå¥ã®ããã¤ã¹ã§ã¢ã¯ãã£ããã£ãæ£å¸¸ã«åéãããå¾ã«çºçãã¾ãã
ã¤ãã³ã: 'update-activity-state' macOSâ
æ»ãå¤:
eventEventtypestring - ã¢ã¯ãã£ããã£ãèå¥ããæååã Maps toNSUserActivity.activityType.userInfounknown - ã¢ã¯ãã£ããã£ã«ãã£ã¦ä¿åãããã¢ããªåºæã®æ å ±ãå«ã¾ãã¦ãã¾ãã
Handoff ãå¥ã®ããã¤ã¹ã§åéãããç´åã«çºçãã¾ãã éä¿¡ãããæ
å ±ãæ´æ°ããå¿
è¦ãããã°ãevent.preventDefault() ãããã«å¼ã³åºãã¦ãã ãããããã¦ãæ°ãã userInfo è¾æ¸ãæ§ç¯ã㦠app.updateCurrentActivity() ãé©åã«å¼ã³åºãã¦ãã ããã ãããªãã°æä½ã¯å¤±æããcontinue-activity-error ãå¼ã³åºããã¾ãã
ã¤ãã³ã: 'new-window-for-tab' macOSâ
æ»ãå¤:
eventEvent
ã¦ã¼ã¶ã¼ã macOS ãã¤ãã£ãã®æ°è¦ã¿ããã¿ã³ãã¯ãªãã¯ããã¨çºçãã¾ãã The new tab button is only visible if the current BrowserWindow has a tabbingIdentifier.
You must create a window in this handler in order for macOS tabbing to work as expected.
ã¤ãã³ã: 'browser-window-blur'â
æ»ãå¤:
eventEventwindowBrowserWindow
browserWindow ã®ãã©ã¼ã«ã¹ãå¤ããã¨ãã«çºçãã¾ãã
ã¤ãã³ã: 'browser-window-focus'â
æ»ãå¤:
eventEventwindowBrowserWindow
browserWindow ããã©ã¼ã«ã¹ãããã¨ãã«çºçãã¾ãã
ã¤ãã³ã: 'browser-window-created'â
æ»ãå¤:
eventEventwindowBrowserWindow
æ°ãã browserWinodow ãçæãããã¨ãã«çºçãã¾ãã
ã¤ãã³ã: 'web-contents-created'â
æ»ãå¤:
eventEventwebContentsWebContents
æ°ãã webContents ã使ãããã¨ãã«çºçãã¾ãã
ã¤ãã³ã: 'certificate-error'â
æ»ãå¤:
eventEventwebContentsWebContentsurlstringerrorstring - ã¨ã©ã¼ã³ã¼ãcertificateCertificatecallbackFunctionisTrustedboolean - è¨¼ææ¸ãä¿¡é ¼ã§ãããã®ã¨è¦ãªããã©ãã
isMainFrameboolean
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'â
æ»ãå¤:
eventEventwebContentsWebContentsurlURLcertificateListCertificate[]callbackFunctioncertificateCertificate (ä»»æ)
ã¯ã©ã¤ã¢ã³ãè¨¼ææ¸ãè¦æ±ãããã¨ãã«çºçãã¾ãã
url ãã¯ã©ã¤ã¢ã³ãè¨¼ææ¸ãè¦æ±ãã¦ããããã²ã¼ã·ã§ã³ã¨ã³ããªã¼ã«å¯¾å¿ãã¦ããã°ããªã¹ããããã£ã«ã¿ã¼ãããã¨ã³ããªã¼ã§ callback ãå¼ã³åºããã¨ãã§ãã¾ãã event.preventDefault() ã使ããã¨ã§ãã¢ããªã±ã¼ã·ã§ã³ãã¹ãã¢ããæåã®è¨¼ææ¸ã使ãã®ããã£ã³ã»ã«ã§ãã¾ãã
const { app } = require('electron')
app.on('select-client-certificate', (event, webContents, url, list, callback) => {
event.preventDefault()
callback(list[0])
})
ã¤ãã³ã: 'login'â
æ»ãå¤:
eventEventwebContentsWebContents (ä»»æ)authenticationResponseDetailsObjecturlURLpidnumberisRequestForNavigationboolean - Indicates whether the request is for a navigation.firstAuthAttemptboolean - Indicates whether this is the first authentication attempt.responseHeadersRecord<string, string | string[]> (optional) - The headers returned in the response.
authInfoObjectisProxybooleanschemestringhoststringportIntegerrealmstring
callbackFunctionusernamestring (ä»»æ)passwordstring (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'â
æ»ãå¤:
eventEventwebContentsWebContentsdetailsRenderProcessGoneDetails
renderer processãäºæããæ¶ããã¨ãã«çºçãã¾ãã ããã»ã¹ãã¯ã©ãã·ã¥ããå ´åããã«ãããå ´åã¯æ£å¸¸ã§ãã
ã¤ãã³ã: 'child-process-gone'â
æ»ãå¤:
eventEventdetailsObjecttypestring - ããã»ã¹ã®ç¨®å¥ã 以ä¸ã®å¤ã®ããããã§ããUtilityZygoteSandbox helperGPUPepper PluginPepper Plugin BrokerUnknown
reasonstring - åããã»ã¹ããªããªã£ãçç±ã åãããå¤:clean-exit- ã¼ãã®çµäºã³ã¼ãã§ããã»ã¹ãçµäºããabnormal-exit- éã¼ãã®çµäºã³ã¼ãã§ããã»ã¹ãçµäºããkilled- ããã»ã¹ã SIGTERM ã·ã°ãã«ã®éä¿¡ãªã©ã®æ¹æ³ã§ãã«ãããcrashed- ããã»ã¹ãã¯ã©ãã·ã¥ããoom- ããã»ã¹ãã¡ã¢ãªä¸è¶³ã«ãªã£ãlaunch-failed- ããã»ã¹ãæ£å¸¸ã«èµ·åãããªãã£ãintegrity-failure- Windows ã³ã¼ãã®æ´åæ§ãã§ãã¯ã«å¤±æããmemory-eviction- å°æ¥ã®ã¡ã¢ãªä¸è¶³ï¼OOMï¼ãé²ããããäºåã«ããã»ã¹ãçµäºãã
exitCodenumber - ããã»ã¹ã®çµäºã³ã¼ããï¼ä¾: posix ã§ã¯ waitpid ãããWindows ã§ã¯ GetExitCodeProcess ããã®ã¹ãã¼ã¿ã¹ï¼serviceNamestring (ä»»æ) - ãã®ããã»ã¹ã®ãã¼ã«ã©ã¤ãºããã¦ããªãååãnamestring (ä»»æ) - ãã®ããã»ã¹ã®ååã ã¦ã¼ãã£ãªãã£ã®ä¾:Audio Service,Content Decryption Module Service,Network Service,Video Captureãªã©
å processãäºæããæ¶ããã¨ãã«çºçãã¾ãã ããã»ã¹ãã¯ã©ãã·ã¥ããå ´åããã«ãããå ´åã¯æ£å¸¸ã§ãã ã¬ã³ãã©ã¼ããã»ã¹ãå«ã¿ã¾ããã
ã¤ãã³ã: 'accessibility-support-changed' macOS Windowsâ
æ»ãå¤:
eventEventaccessibilitySupportEnabledboolean -truewhen Chromium's accessibility support is enabled,falseotherwise.
Emitted when Chromium's accessibility support changes. ãã®ã¤ãã³ãã¯ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®ãããªæ¯æ´æè¡ãæå¹ã«ãããããç¡å¹ã«ããããããã¨ãã«çºç«ãã¾ãã 詳細ã«ã¤ãã¦ã¯ãhttps://www.chromium.org/developers/design-documents/accessibility ãåç §ãã¦ãã ããã
ã¤ãã³ã: 'session-created'â
æ»ãå¤:
sessionSession
Electron ãæ°ãã session ã使ããã¨ãã«çºçãã¾ãã
const { app } = require('electron')
app.on('session-created', (session) => {
console.log(session)
})
ã¤ãã³ã: 'second-instance'â
æ»ãå¤:
eventEventargvstring[] - 2 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ã®ã³ãã³ãã©ã¤ã³å¼æ°ã®é åworkingDirectorystring - 2 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ã®ä½æ¥ãã£ã¬ã¯ããªadditionalDataunknown - 2 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ããæ¸¡ããã追å ãã¼ã¿ã® JSON ãªãã¸ã§ã¯ã
ãã®ã¤ãã³ãã¯ã2 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ãå®è¡ãã app.requestSingleInstanceLock() ãå®è¡ãããã¨ããã¢ããªã±ã¼ã·ã§ã³ã®1ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹å
ã§çºç«ããã¾ãã
argv ã¯2çªç®ã®ã¤ã³ã¹ã¿ã³ã¹ã®ã³ãã³ãã©ã¤ã³å¼æ°ã®é
åã§ãworkingDirectory ã¯ãã®ç¾å¨ã®ä½æ¥ãã£ã¬ã¯ããªã§ãã é常ãã¢ããªã±ã¼ã·ã§ã³ã¯ããã«å¯¾ãã¦1çªç®ã®ã¦ã¤ã³ãã¦ã«ãã©ã¼ã«ã¹ãå½ã¦ãæå°åããªãããã«å¯¾å¿ãã¾ãã
argv 㯠2 çªç®ã®ã¤ã³ã¹ã¿ã³ã¹ã«æ¸¡ããããã®ã¨å
¨ãåã弿°ãªã¹ãã«ãªãã¨ã¯éãã¾ããã é çªãå¤ãã£ããã追å ã®å¼æ°ãä»ãå ãããããããå¯è½æ§ãããã¾ãã å
¨ãåã弿°ãä¿æããå¿
è¦ãããå ´åã¯ã代ããã« additionalData ã®ä½¿ç¨ãæ¨å¥¨ãã¾ãã
[!NOTE] 2 çªç®ã®ã¤ã³ã¹ã¿ã³ã¹ãæåã®ã¤ã³ã¹ã¿ã³ã¹ã¨å¥ã®ã¦ã¼ã¶ã¼ãèµ·åããå ´åã
argvé åã«ã¯å¼æ°ãå«ã¾ãã¾ããã
ãã®ã¤ãã³ã㯠app ã® ready ã¤ãã³ããçºçããå¾ã§å®è¡ããããã¨ãä¿è¨¼ããã¾ãã
[!NOTE] Chromium ã
--original-process-start-timeãªã©ã®ã³ãã³ãã©ã¤ã³å¼æ°ã追å ãããã¨ãããã¾ãã
ã¡ã½ããâ
app ãªãã¸ã§ã¯ãã«ã¯ä»¥ä¸ã®ã¡ã½ãããããã¾ãã
[!NOTE] ããã¤ãã®ã¡ã½ããã¯ç¹å®ã®ãªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã§ã®ã¿å©ç¨å¯è½ã§ããã®ããã«æ³¨è¨ãã¤ãããã¦ãã¾ãã
app.quit()â
ãã¹ã¦ã®ã¦ã¤ã³ãã¦ãéãããã¨ãã¾ãã before-quit ã¤ãã³ããæåã«çºçãã¾ãã ãã¹ã¦ã®ã¦ã¤ã³ãã¦ãéãããã¨ã«æåããå ´åãwill-quit ã¤ãã³ããçºçããæ¢å®ã§ã¯ã¢ããªã±ã¼ã·ã§ã³ã¯çµäºãã¾ãã
ãã®ã¡ã½ããã¯ããã¹ã¦ã® beforeunload ããã³ unload ã¤ãã³ããã³ãã©ã¼ãæ£ããå®è¡ããããã¨ãä¿è¨¼ãã¾ãã beforeunload ã¤ãã³ããã³ãã©ã¼ã§ false ãè¿ããã¨ã«ãã£ã¦ãã¦ã¤ã³ãã¦ãçµäºå¦çããã£ã³ã»ã«ãããã¨ãã§ãã¾ãã
app.exit([exitCode])â
exitCodeInteger (optional)
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()â
Returns Promise<void> - Electron ãåæåãããã¨ãã«å®è¡ããã Promiseã app.isReady() ã確èªãã¦ã¢ããªã®æºåãã¾ã ã§ãã¦ããªãã¨ãã« ready ã¤ãã³ãã«ç»é²ããããã®ã便å©ãªä»£æ¿ææ®µã¨ãã¦ä½¿ç¨ã§ãã¾ãã
app.focus([options])â
macOS ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ãã¢ã¯ãã£ãã«ãªãã¾ãã Windows ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ã®æåã®ã¦ã£ã³ãã¦ã«ãã©ã¼ã«ã¹ãã¾ãã Linux ã§ã¯ãæåã®è¡¨ç¤ºããã¦ããã¦ã¤ã³ãã¦ã«ãã©ã¼ã«ã¹ããã (X11)ããã©ã¼ã«ã¹ãè¦æ±ããããã®ä»£ããã«éç¥ã®è¡¨ç¤ºãã¢ããªã¢ã¤ã³ã³ã®ç¹æ» ãè¡ãã¾ã (Wayland)ã
steal ãªãã·ã§ã³ã¯ã§ããã ãæ
éã«ä½¿ç¨ãã¦ãã ããã
app.isActive() macOSâ
Returns boolean - true if the application is active (i.e. focused).
app.hide() macOSâ
æå°åãããã¨ãªãã¢ããªã±ã¼ã·ã§ã³ã®ãã¹ã¦ã®ã¦ã¤ã³ãã¦ãé表示ã«ãã¾ãã
app.isHidden() macOSâ
æ»ãå¤ boolean - ã¢ããªã±ã¼ã·ã§ã³ããã®ãã¹ã¦ã®ã¦ã£ã³ãã¦ãå«ã㦠(ä¾ãã° Command-H ã§) é ããã¦ããå ´å㯠trueããã以å¤ã¯ false ã§ãã
app.show() macOSâ
é表示ã«ãããã¢ããªã±ã¼ã·ã§ã³ã®ã¦ã¤ã³ãã¦ã表示ãã¾ãã èªåçã«ãã©ã¼ã«ã¹ãã¾ããã
app.setAppLogsPath([path])â
pathstring (ä»»æ) - ãã°ã®ã«ã¹ã¿ã ãã¹ã 絶対ãã¹ã§ãªããã°ãªãã¾ããã
ã¢ããªããã®ã³ã°ãããã£ã¬ã¯ããªãè¨å®ã¾ãã¯ä½æãã¾ãããã㯠app.getPath() ã app.setPath(pathName, newPath) ã§æä½ã§ãã¾ãã
path 弿°ãªãã§ app.setAppLogsPath() ãå¼ã³åºãã¨ããã®ãã£ã¬ã¯ããªã¯ãmacOS ã§ã¯ ~/Library/Logs/ã¢ããªå ã«ãLinux 㨠Windows ã§ã¯ userData ãã£ã¬ã¯ããªå
ã«è¨å®ããã¾ãã
app.getAppPath()â
æ»ãå¤ string - ç¾å¨ã®ã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªã
app.getPath(name)â
namestring - 以ä¸ã®ãã¹ãååã§è¦æ±ãããã¨ãã§ãã¾ããhomeã¦ã¼ã¶ã®ãã¼ã ãã£ã¬ã¯ããªãappData- æ¢å®ã®ã¦ã¼ã¶æ¯ã®ã¢ããªã±ã¼ã·ã§ã³ãã¼ã¿ãã£ã¬ã¯ããªã- Windowsã®å ´åã
%APPDATA% - Linuxã®å ´åã
$XDG_CONFIG_HOMEãããã¯~/.config - macOSã®å ´åã
~/Library/Application Support
- Windowsã®å ´åã
assetsã¢ããªã±ã¼ã·ã§ã³ã®ã¢ã»ãã (resources.pakãªã©) ãæ ¼ç´ããã¦ãããã£ã¬ã¯ããªã ããã©ã«ãã§ã¯ãããã¯exeãã¹ãå«ããã©ã«ãã¨åãã§ãã Windows 㨠Linux ã§å©ç¨ã§ãã¾ããuserDataã¢ããªã®è¨å®ãã¡ã¤ã«ãä¿åããããã£ã¬ã¯ããªã§ãæ¢å®ã§ã¯ã¢ããªåãå ããããappDataã®ãã£ã¬ã¯ããªã æ £ç¿ä¸ã¦ã¼ã¶ã¼ãã¼ã¿ãä¿åãããã¡ã¤ã«ã¯ãã®ãã£ã¬ã¯ããªã«æ¸ãè¾¼ã¾ããã¯ãã§ãããç°å¢ã«ãã£ã¦ã¯ãã®ãã£ã¬ã¯ããªãã¯ã©ã¦ãã¹ãã¬ã¼ã¸ã«ããã¯ã¢ãããããã¨ãããããã大ããªãã¡ã¤ã«ãããã«æ¸ãè¾¼ããã¨ã¯éæ¨å¥¨ã§ãã It is recommended to store app-specific files within a subdirectory ofuserData(e.g.,path.join(app.getPath('userData'), 'my-app-data')) rather than directly inuserDataitself, to avoid naming conflicts with Chromium's own subdirectories (such asCache,GPUCache, andLocal Storage).sessionDataThe directory for storing data generated bySession, such as localStorage, cookies, disk cache, downloaded dictionaries, network state, DevTools files. æ¢å®ã§ã¯ããã¯userDataãæãã¾ãã Chromium ã¯ããã«é常ã«å¤§ããªãã£ã¹ã¯ãã£ãã·ã¥ãæ¸ãè¾¼ãå¯è½æ§ããããããã¦ã¼ã¶ã¼ãã¼ã¿ã®ä¿åã localStorage ã Cookie ãªã©ã®ãã©ã¦ã¶ã¹ãã¬ã¼ã¸ã«ä¾åããªãã¢ããªã®å ´åãuserDataãã£ã¬ã¯ããªãæ±æããªãããããã®ãã£ã¬ã¯ããªãä»ã®å ´æã«è¨å®ãããã¨ãæ¨å¥¨ããã¾ããtemp䏿ãã£ã¬ã¯ããªãexeç¾å¨ã®å®è¡ãã¡ã¤ã«ãmoduleChromiumã¢ã¸ã¥ã¼ã«ã®å ´æã ããã©ã«ãã§ã¯ãããã¯exeã¨å義ã§ããdesktopç¾å¨ã®ã¦ã¼ã¶ã®ãã¹ã¯ããããã£ã¬ã¯ããªãdocumentsã¦ã¼ã¶ã®"ãã¤ããã¥ã¡ã³ã"ã®ãã£ã¬ã¯ããªãdownloadsã¦ã¼ã¶ã®ãã¦ã³ãã¼ãã®ãã£ã¬ã¯ããªãmusicã¦ã¼ã¶ã®ãã¥ã¼ã¸ãã¯ã®ãã£ã¬ã¯ããªãpicturesã¦ã¼ã¶ã®ãã¯ãã£ã®ãã£ã¬ã¯ããªãvideosã¦ã¼ã¶ã®ãããªã®ãã£ã¬ã¯ããªãrecentã¦ã¼ã¶ã¼ãæè¿éãããã¡ã¤ã«ã®ãã£ã¬ã¯ã㪠(Windows ã®ã¿)ãlogsã¢ããªã®ãã°ãã©ã«ãã®ãã£ã¬ã¯ããªãcrashDumpsã¯ã©ãã·ã¥ãã³ããæ ¼ç´ãããã£ã¬ã¯ããªã
æ»ãå¤ string - name ã«é¢é£ä»ããããç¹å¥ãªãã£ã¬ã¯ããªãããã¯ãã¡ã¤ã«ã®ãã¹ã 失æããå ´åãError ãéåºããã¾ãã
If app.getPath('logs') is called without calling app.setAppLogsPath() being called first, a default log directory will be created equivalent to calling app.setAppLogsPath() without a path parameter.
app.getFileIcon(path[, options])â
pathstring
æ»ãå¤ Promise<NativeImage> - ã¢ããªã®ã¢ã¤ã³ã³ã§è§£æ±ºããããã㯠NativeImage åã§ãã
ãã¹ã«é¢é£ä»ãããã¦ããã¢ã¤ã³ã³ãåå¾ãã¾ãã
Windows ã®å ´åã2 種é¡ã®ã¢ã¤ã³ã³ãããã¾ãã
.mp3ã.pngãªã©ãç¹å®ã®ãã¡ã¤ã«æ¡å¼µåã«é¢é£ä»ããããã¢ã¤ã³ã³ã.exeã.dllã.icoã®ãããªããã¡ã¤ã«èªä½ã«å«ã¾ããã¢ã¤ã³ã³ã
Linux 㨠macOS ã®å ´åãã¢ã¤ã³ã³ã¯ãã¡ã¤ã«ã® MIME ã¿ã¤ãã«é¢é£ä»ããããã¢ããªã±ã¼ã·ã§ã³ã«ãã£ã¦æ±ºã¾ãã¾ãã
app.setPath(name, path)â
namestringpathstring
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)â
namestring
ç¾å¨ã®ã¢ããªã±ã¼ã·ã§ã³ã®ååã䏿¸ããã¾ãã
[!NOTE] ãã®é¢æ°ã¯ãElectron å ã§ä½¿ç¨ããååã䏿¸ããã¾ããOS ã使ç¨ããååã«ã¯å½±é¿ãã¾ããã
app.setDesktopName(name) Linuxâ
namestring - The.desktopfilename (e.g.'my-app.desktop').
Sets the .desktop filename on Linux. This should match the base filename of the app's installed .desktop file. The .desktop suffix is optional.
This value is used to determine the default XDG application ID on Wayland and WM_CLASS on X11. If it is not set, Electron will attempt to infer a name, but it may not match the packaged app's actual .desktop file. This could result in the app showing a generic icon or failing to respond to global keyboard shortcuts.
This API must be called before the ready event. The value can also be set using desktopName in package.json.
app.getLocale()â
æ»ãå¤ string - ç¾å¨ã®ã¢ããªã±ã¼ã·ã§ã³ã®ãã±ã¼ã«ã§ãChromium ã® l10n_util ã©ã¤ãã©ãªãç¨ãã¦åå¾ããã¾ãã åãããæ»ãå¤ã«ã¤ãã¦ã¯ ãã¡ã ã«ããã¥ã¡ã³ããããã¾ãã
ãã±ã¼ã«ãè¨å®ããã«ã¯ãã¢ããªã±ã¼ã·ã§ã³ã®èµ·åæã«ã³ãã³ãã©ã¤ã³ã¹ã¤ããã使ç¨ããå¿ è¦ãããã¾ããããã«ã¤ãã¦ã¯ããã¡ã ãåç §ãã¦ãã ããã
[!NOTE] ã¢ããªãããã±ã¼ã¸åãã¦é å¸ããå ´åã
localesãã©ã«ãã忢±ããå¿ è¦ãããã¾ãã
[!NOTE] ãã® API ã¯
readyã¤ãã³ããçºçããå¾ã«å¼ã³åºããªããã°ãªãã¾ããã
[!NOTE] ãã® API ã®æ»ãå¤ã¨ä»ã®ãã±ã¼ã«ãè¨èªã® API ã¨æ¯è¼ãããµã³ãã«ã³ã¼ãã¯ã
app.getPreferredSystemLanguages()ããåç §ãã ããã
app.getLocaleCountryCode()â
æ»ãå¤ string - 2 æåã® ISO 3166 å½åã³ã¼ãã§ãã¦ã¼ã¶ã¼ã® OS ã®ãã±ã¼ã«ã示ãã¾ãã ãã®å¤ã¯ãã¤ãã£ãã® OS API ããåå¾ãã¾ãã
[!NOTE] ãã±ã¼ã«ã®å½ã³ã¼ããåå¾ã§ããªãã£ãå ´åãããã¯ç©ºæååãè¿ãã¾ãã
app.getSystemLocale()â
æ»ãå¤ string - ç¾å¨ã®ã·ã¹ãã ãã±ã¼ã«ã Windows 㨠Linux ã§ã¯ãChromium ã® i18n ã©ã¤ãã©ãªãç¨ãã¦åå¾ãã¾ãã macOS ã§ã¯ã[NSLocale currentLocale] ã代ããã«ä½¿ç¨ãã¾ãã ã¦ã¼ã¶ã¼ã®ç¾å¨ã®ã·ã¹ãã è¨èªãåå¾ããã«ã¯ãapp.getPreferredSystemLanguages() ã使ç¨ããã¨ããã§ããããããã¯ãã±ã¼ã«ã¨åãã¨ã¯éãã¾ããã
ã¾ãããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã«ãã£ã¦ããªã¼ã¸ã§ã³ãã¼ã¿ã®æ±ããç°ãªãã¾ãã
- Windows 11 ã¯æ°å¤ãæ¥ä»ãæå»ã«ãªã¼ã¸ã§ã³ãã¨ã®æ¸å¼ã使ç¨ãã¾ãã
- macOS Monterey ã¯æ°å¤ãæ¥ä»ãæå»ã®æ¸å¼è¨å®ããé貨è¨å·ã®é¸æã«ãªã¼ã¸ã§ã³ã使ç¨ãã¾ãã
ãã®ããããã® API ã¯ã«ã¬ã³ãã¼ã¢ããªã§æ¥ä»ãæå»ã表示ããéã®ãã©ã¼ãããã鏿ãããããªç¨éãç¹ã«éçºè ã OS ã«é©ãããã©ã¼ãããã叿ããå ´åã«å©ç¨ã§ãã¾ãã
[!NOTE] ãã® API ã¯
readyã¤ãã³ããçºçããå¾ã«å¼ã³åºããªããã°ãªãã¾ããã
[!NOTE] ãã® API ã®æ»ãå¤ã¨ä»ã®ãã±ã¼ã«ãè¨èªã® API ã¨æ¯è¼ãããµã³ãã«ã³ã¼ãã¯ã
app.getPreferredSystemLanguages()ããåç §ãã ããã
app.getPreferredSystemLanguages()â
æ»ãå¤ string[] - ã¦ã¼ã¶ã¼ã叿ããã·ã¹ãã è¨èªããæã叿ãããã®ããæã叿ããªããã®ã¾ã§ãå½çªå·ãå«ãããã®ã§ãã Windows ã macOS ã§ã¯ãã¦ã¼ã¶ã¼ãè¨èªã¨å°åã®è¨å®ãããã®ãªã¹ãã夿´ããã追å ãããã§ãã¾ãã
Windows ã§ã¯ GlobalizationPreferences (GetSystemPreferredUILanguages ã¸ã®ãã©ã¼ã«ããã¯ãã)ãmacOS ã§ã¯ \[NSLocale preferredLanguages\]ãLinux ã§ã¯ g_get_language_names ã API ã¨ãã¦ä½¿ç¨ããã¾ãã
ãã® 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']
å©ç¨å¯è½ãªè¨èªã¨å°åã¨ãã®æ»ãå¤ã¯ããã® 2 ã¤ã®ãªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã§ãç°ãªãã¾ãã
ä¸è¨ã®ä¾ãããããããã«ãWindows ã§ã¯åªå
ã·ã¹ãã è¨èªãå½ã³ã¼ããæãããåªå
ã·ã¹ãã è¨èªã® 1 ã¤ããªã¼ã¸ã§ã³ã®ãã©ã¼ãããã«ä½¿ç¨ããã¦ããè¨èªã¨ä¸è´ãããã¨ãããã¾ãã 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â
pathstring
path ãæè¿ä½¿ã£ãããã¥ã¡ã³ãã®ãªã¹ãã«è¿½å ãã¾ãã
ãã®ãªã¹ã㯠OS ã管çãã¾ãã Windows ã®å ´åã¯ã¿ã¹ã¯ãã¼ãããªã¹ãã«ã¢ã¯ã»ã¹ã§ããmacOS ã®å ´å㯠Dock ã¡ãã¥ã¼ãããªã¹ãã«ã¢ã¯ã»ã¹ã§ãã¾ãã
app.clearRecentDocuments() macOS Windowsâ
æè¿ä½¿ã£ãããã¥ã¡ã³ãã®ãªã¹ããã¯ãªã¢ãã¾ãã
app.getRecentDocuments() macOS Windowsâ
æ»ãå¤ string[] - æè¿ä½¿ã£ãããã¥ã¡ã³ãã®ãªã¹ããåå¾ãã¾ãã
const { app } = require('electron')
const path = require('node:path')
const file = path.join(app.getPath('desktop'), 'foo.txt')
app.addRecentDocument(file)
const recents = app.getRecentDocuments()
console.log(recents) // ['/path/to/desktop/foo.txt'}
app.setAsDefaultProtocolClient(protocol[, path, args])â
protocolstring -://ãé¤ããããã³ã«ã®ååã ä¾ãã°ãã¢ããªã§electron://ãªã³ã¯ãå¦çãããå ´åã弿°ãelectronã«ãã¦ãã®ã¡ã½ãããå¼ã³åºãã¦ãã ãããpathstring (ä»»æ) Windows - Electron å®è¡å½¢å¼ã¸ã®ãã¹ã çç¥å¤ã¯process.execPathã§ããargsstring[] (ä»»æ) Windows - å®è¡å½¢å¼ã«æ¸¡ã弿°ã çç¥å¤ã¯ç©ºã®é åã§ãã
æ»ãå¤ boolean - å¼ã³åºããæåãããã©ããã
ãã®ã¡ã½ããã¯ç¾å¨ã®å®è¡å½¢å¼ããããã³ã« (ã¾ã㯠URI ã¹ãã¼ã ) ã®æ¢å®ã®ãã³ãã©ã¼ã¨ãã¦è¨å®ãã¾ãã ããã«ãããã¢ããªããªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ã¨å¯æ¥ã«çµ±åã§ãã¾ãã ç»é²ããã¨ããããã³ã«:// ã«ãããã¹ã¦ã®ãªã³ã¯ã¯ç¾å¨ã®å®è¡å½¢å¼ã§éãããããã«ãªãã¾ãã ãããã³ã«ãå«ããªã³ã¯å
¨ä½ããã¢ããªã±ã¼ã·ã§ã³ã«å¼æ°ã¨ãã¦æ¸¡ããã¾ãã
[!NOTE] macOS ã®å ´åã¯ã¢ããªã®
info.plistã«è¿½å ããã¦ãããããã³ã«ããç»é²ã§ãããå®è¡æã«å¤æ´ã§ãã¾ããã ããããElectron Forge ã Electron Packager ãä»ããããããã¹ãã¨ãã£ã¿ã§info.plistãç·¨éãããã¨ã§ããã«ãæã«ãã¡ã¤ã«ã夿´ã§ãã¾ãã 詳細㯠Apple ã®ããã¥ã¡ã³ã ããåç §ãã ããã
[!NOTE] Windows ã¹ãã¢ç°å¢ (
appxã¨ãã¦ããã±ã¼ã¸ããã¦ãã) å ´åããã® API ã¯ãã¹ã¦ã®å¼ã³åºãã«trueãè¿ãã¾ãããããã«ã»ãããããã¬ã¸ã¹ããªãã¼ã¯ä»ã®ã¢ããªã±ã¼ã·ã§ã³ããã¢ã¯ã»ã¹ã§ãã¾ããã Windows ã¹ãã¢ã®ã¢ããªã±ã¼ã·ã§ã³ãæ¢å®ã®ãããã³ã«ãã³ãã©ã¨ãã¦ç»é²ããã«ã¯ããããã§ã¹ãã§ãããã³ã«ã宣è¨ãã å¿ è¦ãããã¾ãã
ãã® API ã¯å
é¨çã« Windows ã¬ã¸ã¹ã㪠ã LSSetDefaultHandlerForURLScheme ã使ç¨ãã¾ãã
app.removeAsDefaultProtocolClient(protocol[, path, args]) macOS Windowsâ
protocolstring -://ãé¤ããããã³ã«ã®ååãpathstring (ä»»æ) Windows - çç¥å¤ã¯process.execPathargsstring[] (ä»»æ) Windows - çç¥å¤ã¯ç©ºã®é å
æ»ãå¤ boolean - å¼ã³åºããæåãããã©ããã
ãã®ã¡ã½ããã¯ãç¾å¨ã®å®è¡ãã¡ã¤ã«ããããã³ã« (ã¾ã㯠URI ã¹ãã¼ã ) ã®ããã©ã«ããã³ãã©ã§ãããã©ããããã§ãã¯ãã¾ãã ãã®å ´åãæ¢å®ã®ãã³ãã©ã¼ããã¢ããªãåé¤ãã¾ãã
app.isDefaultProtocolClient(protocol[, path, args])â
protocolstring -://ãé¤ããããã³ã«ã®ååãpathstring (ä»»æ) Windows - çç¥å¤ã¯process.execPathargsstring[] (ä»»æ) Windows - çç¥å¤ã¯ç©ºã®é å
æ»ãå¤ boolean - ç¾å¨ã®å®è¡å½¢å¼ããããã³ã« (ã¾ã㯠URI ã¹ãã¼ã ) ã®æ¢å®ã®ãã³ãã©ã¼ãã©ããã
[!NOTE] macOS ã®å ´åããã®ã¡ã½ããã¯ã¢ããªããããã³ã«ã®æ¢å®ã®ãã³ãã©ã¨ãã¦ç»é²ããã¦ãããããã§ãã¯ããã®ã«ä½¿ãã¾ãã macOSã®ãã·ã³ä¸ã®
~/Library/Preferences/com.apple.LaunchServices.plistã確èªãããã¨ã§ããããæ¤è¨¼ãããã¨ãã§ãã¾ãã 詳細㯠Apple ã®ããã¥ã¡ã³ã ããåç §ãã ããã
ãã® API ã¯å
é¨çã« Windows ã¬ã¸ã¹ã㪠ã LSCopyDefaultHandlerForURLScheme ã使ç¨ãã¾ãã
app.getApplicationNameForProtocol(url)â
urlstring - 確èªãããããã³ã«åãä»ãã URLã é¡ä¼¼ã®ä»ã¡ã½ããã¨ã¯ç°ãªããå°ãªãã¨ã://ã¾ã§ãå«ã URL å ¨ä½ãåãä»ãã¾ã (ä¾:https://)ã
æ»ãå¤ string - ãã®ãããã³ã«ãå¦çããã¢ããªã±ã¼ã·ã§ã³ã®ååããã³ãã©ã¼ããªãå ´åã¯ç©ºã®æååã§ãã ãã¨ãã°ãElectron ããã® URL ã®ããã©ã«ããã³ãã©ã¼ã§ããå ´åãWindows 㨠Mac ã§ã¯ Electron ã«ãªãã¾ãã ãã ããå³å¯ãªå½¢å¼ã«ä¾åããªãã§ãã ããã夿´ããã¦ããå¯è½æ§ãããã¾ãã Linux ã§ã¯ã.desktop æ¥å°¾åãä»ããå¥ã®å½¢å¼ãå¿
è¦ã§ãããã
ãã®ã¡ã½ããã¯ãURL ã®ãããã³ã« (å¥å URI ã¹ãã¼ã ) ã®ããã©ã«ããã³ãã©ã¼ã§ããã¢ããªã±ã¼ã·ã§ã³åãè¿ãã¾ãã
app.getApplicationInfoForProtocol(url)â
urlstring - 確èªãããããã³ã«åãä»ãã URLã é¡ä¼¼ã®ä»ã¡ã½ããã¨ã¯ç°ãªããå°ãªãã¨ã://ã¾ã§ãå«ã URL å ¨ä½ãåãä»ãã¾ã (ä¾:https://)ã
æ»ãå¤ Promise<Object> - 以ä¸ãå«ããªãã¸ã§ã¯ãã§å®è¡ããã¾ãã
iconNativeImage - ãããã³ã«ãå¦çããã¢ããªã®è¡¨ç¤ºã¢ã¤ã³ã³ãpathstring - ãããã³ã«ãæ±ãã¢ããªã®ã¤ã³ã¹ãã¼ã«ãã¹ãnamestring - ãããã³ã«ãæ±ãã¢ããªã®è¡¨ç¤ºåã
ãã®ã¡ã½ããã¯ãURL ã®ãããã³ã« (å¥å URI ã¹ãã¼ã ) ã®ããã©ã«ããã³ãã©ã¼ã§ããã¢ããªã±ã¼ã·ã§ã³åãã¢ã¤ã³ã³ããã¹ãå«ãPromiseãè¿ãã¾ãã
app.setUserTasks(tasks) Windowsâ
tasksTask[] -Taskãªãã¸ã§ã¯ãã®é å
tasks ã Tasks ã«ãã´ãªã® Windows ã®ã¸ã£ã³ããªã¹ãã«è¿½å ãã¾ãã
tasks 㯠Task ãªãã¸ã§ã¯ãã®é
åã§ãã
æ»ãå¤ boolean - å¼ã³åºããæåãããã©ããã
[!NOTE] ã¸ã£ã³ããªã¹ãããã£ã¨ã«ã¹ã¿ãã¤ãºãããå ´åã¯ã
app.setJumpList(categories)ã代ããã«ä½¿ç¨ãã¦ãã ããã
app.getJumpListSettings() Windowsâ
æ»ãå¤ Object:
minItemsInteger - The minimum number of items that will be shown in the Jump List (for a more detailed description of this value see the MSDN docs).removedItemsJumpListItem[] -JumpListItemãªãã¸ã§ã¯ãã®é åãã¦ã¼ã¶ãæç¤ºçã«ãã¸ã£ã³ããªã¹ãã®ã«ã¹ã¿ã ã«ãã´ãªããåé¤ããã¢ã¤ãã ã«å¯¾å¿ãã¾ãã ãããã®ã¢ã¤ãã ãç´å¾ã®app.setJumpList()ã®å¼ã³åºãã§ã¸ã£ã³ããªã¹ãã«å度追å ãã¦ã¯ããã¾ãããWindowsã¯åé¤ãããã¢ã¤ãã ãå«ããããªãã«ã¹ã¿ã ã«ãã´ãªã表示ãããã¨ã¯ã§ãã¾ããã
app.setJumpList(categories) Windowsâ
categoriesJumpListCategory[] |null-JumpListCategoryãªãã¸ã§ã¯ãã®é åã
æ»ãå¤ string
ã¢ããªã±ã¼ã·ã§ã³ã®ã«ã¹ã¿ã ã¸ã£ã³ããªã¹ããè¨å®ãããã¯åé¤ãã以ä¸ã®æååã®ãããããè¿ãã¾ãã
ok- æ£å¸¸ãerror- 1ã¤ä»¥ä¸ã®ã¨ã©ã¼ãçºçãã¾ãããä½ãåå ããææ¡ããããã«ã¯ãå®è¡æãã°ãæå¹ã«ãã¾ããinvalidSeparatorError- ã¸ã£ã³ããªã¹ãã®ã«ã¹ã¿ã ã«ãã´ãªã«åºåãã追å ãããã¨ãã¾ããã åºåãã¯æ¨æºã®ã¿ã¹ã¯ã«ãã´ãªã§ãã使ç¨ã§ãã¾ãããfileTypeRegistrationError- ã¢ããªãå¦çã§ããã¨ç»é²ããã¦ããªããã¡ã¤ã«ã¿ã¤ãã®ãã¡ã¤ã«ãªã³ã¯ãã¸ã£ã³ããªã¹ãã«è¿½å ãããã¨ãã¾ãããcustomCategoryAccessDeniedError- ã¦ã¼ã¶ã¼ãã©ã¤ãã·ã¼ãããã¯ã°ã«ã¼ãããªã·ã¼è¨å®ã®ãããã¸ã£ã³ããªã¹ãã«ã«ã¹ã¿ã ã«ãã´ãªã追å ã§ãã¾ããã
categories ã null ã®å ´åããã®åã«è¨å®ããã¦ããã«ã¹ã¿ã ã¸ã£ã³ããªã¹ã (ããã°) ã¯ã(Windowsã«ãã£ã¦ç®¡çããã) ã¢ããªæ¨æºã®ã¸ã£ã³ããªã¹ãã«ç½®æããã¾ãã
JumpListCategory ãªãã¸ã§ã¯ãã« type ããããã£ã name ããããã£ãè¨å®ãããªãã£ãå ´åãtype 㯠tasks ã¨è¦åããã¾ãã name ããããã£ã¯è¨å®ããã¦ãã䏿¹ã§ type ããããã£ãçç¥ãããå ´åãtype 㯠custom ã¨è¦åããã¾ãã
[!NOTE] ã¦ã¼ã¶ã¯ã«ã¹ã¿ã ã«ãã´ãªããã¢ã¤ãã ãåé¤ã§ãã¾ãããWindows ã¯æ¬¡ã®
app.setJumpList(categories)ã®å¼ã³åºããæåããå¾ã§ãªãã¨ãåé¤ãããã¢ã¤ãã ãã«ã¹ã¿ã ã«ãã´ãªã«è¿½å ãç´ããã¨ã許å¯ããã¾ããã ããããæ©ãã«ã¹ã¿ã ã«ãã´ãªã«åé¤ãããã¢ã¤ãã ãå度追å ãããã¨ããã¨ãã¸ã£ã³ããªã¹ãããã«ã¹ã¿ã ã«ãã´ãªå ¨ä½ãå¤ãã¦ãã¾ãã¾ãã åé¤ãããã¢ã¤ãã ã®ãªã¹ãã¯app.getJumpListSettings()ã§åå¾ã§ãã¾ãã
[!NOTE] ã¸ã£ã³ããªã¹ãã®ã¢ã¤ãã ã®
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' }
]
},
{ // `type` 㯠"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' },
{ // ååã¨ã¿ã¤ããç¡ãã®ã§ `type` 㯠"tasks" ã¨è¦ãªããã¾ã
items: [
{
type: 'task',
title: 'New Project',
program: process.execPath,
args: '--new-project',
description: 'Create a new project.'
},
{ type: 'separator' },
{
type: 'task',
title: 'ããã¸ã§ã¯ãã®å¾©å
',
program: process.execPath,
args: '--recover-project',
description: 'ããã¸ã§ã¯ãã復å
ãã¾ãã'
}
]
}
])
app.requestSingleInstanceLock([additionalData])â
additionalDataRecord<any, any> (optional) - æåã®ã¤ã³ã¹ã¿ã³ã¹ã«éä¿¡ãã追å ãã¼ã¿ãæ ¼ç´ãã JSON ãªãã¸ã§ã¯ãã§ãã
æ»ãå¤ boolean
ãã®ã¡ã½ããã®æ»ãå¤ã¯ãã¢ããªã±ã¼ã·ã§ã³ã®ãã®ã¤ã³ã¹ã¿ã³ã¹ã®ããã¯ãæåãããã©ããã表ãã¾ãã ããã¯ç¶æ ã«ã§ããªãã£ãå ´åãã¢ããªã±ã¼ã·ã§ã³ã®ä»ã®ã¤ã³ã¹ã¿ã³ã¹ãæ¢ã«ããã¯ããã¦ããããã ã¡ã«çµäºããã¨æ³å®ã§ãã¾ãã
ã¤ã¾ãã ãã®ã¡ã½ããã¯ãããã»ã¹ãã¢ããªã±ã¼ã·ã§ã³ã® 1 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ã§ãã¢ããªããã¼ãå¦çãç¶è¡ããå¿
è¦ãããå ´åã« true ãè¿ãã¾ãã æ¢ã«ããã¯ç¶æ
ã«ãããã®ã¨ã¯å¥ã®ã¤ã³ã¹ã¿ã³ã¹ã«ãã©ã¡ã¼ã¿ãéä¿¡ããããããã»ã¹ãç´ã¡ã«çµäºããå¿
è¦ãããå ´åã¯ãfalse ãè¿ãã¾ãã
macOSã®å ´åãã¦ã¼ã¶ãFinderã§ã¢ããªã®2çªç®ã®ã¤ã³ã¹ã¿ã³ã¹ãéããã¨ããã¨ããã·ã¹ãã ã¯èªåçã«ã·ã³ã°ã«ã¤ã³ã¹ã¿ã³ã¹ã«ãªãããã«ããopen-file 㨠open-url ã¤ãã³ããçºçãã¾ãã ãã ããã¦ã¼ã¶ãã¢ããªãã³ãã³ãã©ã¤ã³ã§éå§ããå ´åãã·ã³ã°ã«ã¤ã³ã¹ã¿ã³ã¹ãå¼·å¶ããã·ã¹ãã ã®ä»çµã¿ãè¿åããããããã·ã³ã°ã«ã¤ã³ã¹ã¿ã³ã¹ã§ãããã¨ãä¿è¨¼ããã«ã¯ããã®ã¡ã½ããã使ãå¿
è¦ãããã¾ãã
以ä¸ã¯ã2ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ãéå§ãããã¨ãã«1ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ã®ã¦ã¤ã³ãã¦ãã¢ã¯ãã£ãã«ããä¾ã§ãã
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) => {
// 2 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ããåãåã£ããã¼ã¿ãåºåãã¾ãã
console.log(additionalData)
// 誰ãã 2 ã¤ç®ã®ã¤ã³ã¹ã¿ã³ã¹ãå®è¡ãããã¨ããã®ã§ããã®ã¦ã¤ã³ãã¦ã«ãã©ã¼ã«ã¹ããå¿
è¦ãããã¾ãã
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore()
myWindow.focus()
}
})
app.whenReady().then(() => {
myWindow = new BrowserWindow({})
myWindow.loadURL('https://electronjs.org')
})
}
app.hasSingleInstanceLock()â
æ»ãå¤ boolean
ãã®ã¡ã½ããã¯ã¢ããªã®ãã®ã¤ã³ã¹ã¿ã³ã¹ãç¾å¨ã·ã³ã°ã«ã¤ã³ã¹ã¿ã³ã¹ããã¯ãããã¦ãããã©ãããè¿ãã¾ãã app.requestSingleInstanceLock() ã§ããã¯ãè¦æ±ããapp.releaseSingleInstanceLock() ã§è§£æ¾ã§ãã¾ãã
app.releaseSingleInstanceLock()â
requestSingleInstanceLock ã«ãã£ã¦ä½æããããã¹ã¦ã®ããã¯ãè§£æ¾ãã¾ãã ããã«ããã並åå®è¡ããããã®è¤æ°ã¤ã³ã¹ã¿ã³ã¹ã®ã¢ããªã±ã¼ã·ã§ã³ãåã³è¨±å¯ããã¾ãã
app.setUserActivity(type, userInfo[, webpageURL]) macOSâ
typestring - ã¢ã¯ãã£ããã£ã䏿ã«èå¥ãã¾ãã Maps toNSUserActivity.activityType.userInfoany - å¥ã®ããã¤ã¹ã§ä½¿ç¨ããããã«ä¿åãããã¢ããªåºæã®æ å ±ãwebpageURLstring (ä»»æ) - ç¶è¡ããããã¤ã¹ã«é©åãªã¢ããªãã¤ã³ã¹ãã¼ã«ããã¦ããªãå ´åããã©ã¦ã¶ã§èªã¿è¾¼ãã¦ã§ããã¼ã¸ã ã¹ãã¼ã ã¯httpãããã¯httpsã§ãªããã°ãªãã¾ããã
NSUserActivity ã使ããç¾å¨ã®ã¢ã¯ãã£ããã£ã¨ãã¦è¨å®ãã¾ãã ã¢ã¯ãã£ããã£ã¯ããã¨ã§å¥ã®ããã¤ã¹ã« Handoff ã®å¯¾è±¡ã¨ãªãã¾ãã
app.getCurrentActivityType() macOSâ
æ»ãå¤ string - ç¾å¨å®è¡ããã¦ããã¢ã¯ãã£ããã£ã®ã¿ã¤ãã§ãã
app.invalidateCurrentActivity() macOSâ
ç¾å¨ã® Handoff ã¦ã¼ã¶ã¢ã¯ãã£ããã£ãç¡å¹ã«ãã¾ãã
app.resignCurrentActivity() macOSâ
ç¾å¨ã® Handoff ã¦ã¼ã¶ã¼ã¢ã¯ãã£ããã£ãç¡å¹åããã«éã¢ã¯ãã£ãã¨ãã¦ãã¼ã¯ãã¾ãã
app.updateCurrentActivity(type, userInfo) macOSâ
typestring - ã¢ã¯ãã£ããã£ã䏿ã«èå¥ãã¾ãã Maps toNSUserActivity.activityType.userInfoany - å¥ã®ããã¤ã¹ã§ä½¿ç¨ããããã«ä¿åãããã¢ããªåºæã®æ å ±ã
ã¿ã¤ãã type ã¨ä¸è´ããå ´åãç¾å¨ã®ã¢ã¯ãã£ããã£ãæ´æ°ããç¾å¨ã® userInfo ãã£ã¹ã¯ã·ã§ããªã« userInfo ã®ã¨ã³ããªãçµ±åãã¾ãã
app.setAppUserModelId(id) Windowsâ
idstring
Application User Model ID ã id ã«å¤æ´ãã¾ãã
app.setToastActivatorCLSID(id) Windowsâ
idstring
Changes the Toast Activator CLSID to id. If one is not set via this method, it will be randomly generated for the app.
- The value must be a valid GUID/CLSID in one of the following forms:
- Canonical brace-wrapped:
{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}(preferred) - Canonical without braces:
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX(braces will be added automatically)
- Canonical brace-wrapped:
- Hex digits are case-insensitive.
This method should be called early (before showing notifications) so the value is baked into the registration/shortcut. Supplying an empty string or an unparsable value throws and leaves the existing (or generated) CLSID unchanged. If this method is never called, a random CLSID is generated once per run and exposed via app.toastActivatorCLSID.
app.setActivationPolicy(policy) macOSâ
policystring - 'regular', 'accessory', 'formited' ã®ããããã«ã§ãã¾ãã
ã¢ããªã®ã¢ã¯ãã£ãã¼ã·ã§ã³ããªã·ã¼ãè¨å®ãã¾ãã
ã¢ã¯ãã£ãã¼ã·ã§ã³ããªã·ã¼ã®ç¨®é¡ã¯ä»¥ä¸ã®ã¨ããã§ãã
- 'regular' - Dock ã«è¡¨ç¤ºãããé常ã®ã¢ããªã§ãã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¼ã¹ããã£ãããã¾ãã
- 'accessory' - ãã®ã¢ããªã±ã¼ã·ã§ã³ã¯ããã¯ã«è¡¨ç¤ºããããã¡ãã¥ã¼ãã¼ãããã¾ãããããã°ã©ã ããåã¯ã¦ã£ã³ãã¦ãã¯ãªãã¯ãããã¨ã§ã¢ã¯ãã£ãã¼ãã§ãã¾ãã
- 'prohibited' - ã¢ããªã±ã¼ã·ã§ã³ã¯ããã¯ã«è¡¨ç¤ºããããã¦ã£ã³ãã¦ãä½ããããã¢ã¯ãã£ãã¼ãã§ãã¾ããã
app.importCertificate(options, callback) Linuxâ
callbackFunctionresultInteger - ã¤ã³ãã¼ãçµæã
ãã©ãããã©ã¼ã ã®è¨¼ææ¸ã¹ãã¢ã«PACS#12å½¢å¼ã§è¨¼ææ¸ãã¤ã³ãã¼ããã¾ãã ã¤ã³ãã¼ããããã¨ãresult ã弿°ã« callback ãå¼ã³åºããã¾ãã0 ã¨ããå¤ã¯æåãæå³ãã¾ããããã®ä»ã®å¤ã¯ Chromium ã® net_error_list ã«ããéãã®å¤±æãæå³ãã¾ãã
app.configureHostResolver(options)â
ãã¹ã解決 (DNS 㨠DNS-over-HTTPS) ãè¨å®ãã¾ãã ããã©ã«ãã§ã¯ã以ä¸ã®ãªã¾ã«ãããã®é çªã§ä½¿ç¨ããã¾ãã
- DNS-over-HTTPSãDNS ãããã¤ãããµãã¼ããã¦ãã å ´å
- çµã¿è¾¼ã¿ãªã¾ã«ã (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.configureWebAuthn(options) macOSâ
Configures platform authenticators for the Web Authentication API (navigator.credentials.create() / navigator.credentials.get()). Until this is called, PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() resolves to false and platform-authenticator requests are not serviced.
When touchID is provided, WebAuthn credentials are stored in the macOS keychain and bound to this device's Secure Enclave. Electron automatically generates and persists a per-session metadata secret so that credentials created in one partition are not visible to another.
const { app } = require('electron')
app.configureWebAuthn({
touchID: {
keychainAccessGroup: 'A1B2C3D4E5.com.example.app.webauthn',
promptReason: 'sign in to $1'
}
})
With the matching entitlement in your app's entitlements.plist:
<key>keychain-access-groups</key>
<array>
<string>A1B2C3D4E5.com.example.app.webauthn</string>
</array>
[!NOTE] Touch ID WebAuthn credentials are device-bound and are not synced via iCloud Keychain. They are only available on Macs with a Secure Enclave (Apple silicon, or Intel Macs with a T2 chip).
app.disableHardwareAcceleration()â
ç¾å¨ã®ã¢ããªã®ãã¼ãã¦ã§ã¢ã¢ã¯ã»ã©ã¬ã¼ã·ã§ã³ãç¡å¹ã«ãã¾ãã
ãã®ã¡ã½ããã¯ã¢ããªã ready ã«ãªãåã ãã§ããå¼ã³åºããã¨ãã§ãã¾ããã
app.isHardwareAccelerationEnabled()â
æ»ãå¤ boolean - ãã¼ãã¦ã§ã¢ã¢ã¯ã»ã©ã¬ã¼ã·ã§ã³ãç¾å¨æå¹ãã©ããã
[!NOTE] ãã®æ å ±ã¯
gpu-info-updateã¤ãã³ããçºçããå¾ã«ã®ã¿å©ç¨ã§ãã¾ãã
app.disableDomainBlockingFor3DAPIs()â
By default, Chromium disables 3D APIs (e.g. WebGL) until restart on a per domain basis if the GPU process crashes too frequently. ãã®é¢æ°ã¯ãã®æ¯ãèããç¡å¹ã«ãã¾ãã
ãã®ã¡ã½ããã¯ã¢ããªã ready ã«ãªãåã ãã§ããå¼ã³åºããã¨ãã§ãã¾ããã
app.getAppMetrics()â
æ»ãå¤ ProcessMetric[]: ProcessMetric ãªãã¸ã§ã¯ãã®é
åã§ãã¢ããªã«é¢é£ä»ãããããã¹ã¦ã®ããã»ã¹ã®ã¡ã¢ãªã CPU 使ç¨çã®çµ±è¨æ
å ±ã«å¯¾å¿ãã¦ãã¾ãã
app.getGPUFeatureStatus()â
æ»ãå¤ GPUFeatureStatus - chrome://gpu/ ããåå¾ããã°ã©ãã£ãã¯ã¹æ©è½ã®ã¹ãã¼ã¿ã¹ã
[!NOTE] ãã®æ å ±ã¯
gpu-info-updateã¤ãã³ããçºçããå¾ã«ã®ã¿å©ç¨ã§ãã¾ãã
app.getGPUInfo(infoType)â
infoTypestring -basicãcompleteã«ã§ãã¾ãã
æ»ãå¤ Promise<unknown>
infoType ã complete ã®å ´åãPromise 㯠Chromium ã® GPUInfo ãªãã¸ã§ã¯ã å
ã«ããããã¹ã¦ã® GPU æ
å ±ãå«ãã Object ã§è§£æ±ºããã¾ãã ããã«ã¯ chrome://gpu ãã¼ã¸ä¸ã§è¡¨ç¤ºããããã¼ã¸ã§ã³ã¨ãã©ã¤ãæ
å ±ãå«ã¾ãã¾ãã
infoType ã basic ã«çããå ´åãPromise 㯠complete ã§ã®GPUæ
å ±ããå°ãªã屿§ãå«ãã Object ã§è§£æ±ºããã¾ãã basic ã®å¿çã®ä¾ã¯ãã¡ãã§ãã
{
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 ãç¨ãããã¨ã好ã¾ããã§ãã
Promise is rejected if the GPU is completely disabled, i.e. no hardware and software implementations are available.
app.setBadgeCount([count]) Linux macOSâ
countInteger (ä»»æ) - å¤ãæå®ããã¦ããå ´åã¯ãæå®ãããå¤ã®ããã¸ãè¨å®ãã¾ããããã§ãªãå ´åãmacOS ã§ã¯ç¡å°ã®ç½ç¹ (éç¥æ°ä¸æãªã©ã®æå³) ã表示ãã¾ãã Linux ã§å¤ãæå®ããªãå ´åãããã¸ã¯è¡¨ç¤ºããã¾ããã
æ»ãå¤ boolean - å¼ã³åºããæåãããã©ããã
ç¾å¨ã®ã¢ããªã®ã«ã¦ã³ã¿ã¼ããã¸ãè¨å®ãã¾ãã ã«ã¦ã³ãã 0 ã«è¨å®ããã¨ãããã¸ãé表示ã«ãã¾ãã
macOS ã§ã¯ Dock ã¢ã¤ã³ã³ã«è¡¨ç¤ºããã¾ãã Linux ã§ã¯ Unity ã©ã³ãã£ã¼ã§ã®ã¿åä½ãã¾ãã
[!NOTE] Unity ã©ã³ãã£ã¼ã¯åä½ã«ããã£ã¦
.desktopãã¡ã¤ã«ãå¿ è¦ã¨ãã¾ãã 詳ããæ å ±ã¯ãUnity çµ±åããã¥ã¡ã³ã ããåç §ãã ããã
[!NOTE] macOS ã§ãã®ã¡ã½ãããåä½ãããã¨ãã¯ãã¢ããªã±ã¼ã·ã§ã³ã«éç¥ã®è¡¨ç¤ºæ¨©éããããã¨ã確ããã¦ãã ããã
app.getBadgeCount() Linux macOSâ
æ»ãå¤ Integer - ã«ã¦ã³ã¿ã¼ããã¸ã«è¡¨ç¤ºããã¦ããç¾å¨ã®å¤ã
app.isUnityRunning() Linuxâ
æ»ãå¤ boolean - ç¾å¨ã®ãã¹ã¯ãããç°å¢ã Unity ã©ã³ãã£ã¼ã§ãããã©ããã
app.getLoginItemSettings([options]) macOS Windowsâ
app.setLoginItemSettings ã« path 㨠args ãªãã·ã§ã³ãæå®ããå ´åãopenAtLogin ãæ£ããè¨å®ãããããã«ãããã§åã弿°ãå¼ã渡ãå¿
è¦ãããã¾ãã
æ»ãå¤ Object:
openAtLoginboolean - ã¢ããªããã°ã¤ã³æã«éãããè¨å®ããã¦ããå ´åãtrueã§ããopenAsHiddenboolean macOS 鿍奍 - ãã°ã¤ã³æã«ã¢ããªãé ãã¦éãããã«è¨å®ããã¦ããå ´åãtrueã§ãã ãã㯠macOS 13 以éã§ã¯åä½ãã¾ãããwasOpenedAtLoginboolean macOS - ã¢ããªããã°ã¤ã³æã«èªåã§éãããå ´åãtrueã§ããwasOpenedAsHiddenboolean macOS 鿍奍 - ã¢ããªãé表示ã®ãã°ã¤ã³é ç®ã¨ãã¦éããã¦ããå ´åãtrueã§ãã ããã¯ãã¢ããªãèµ·åæã«ä½ãã¦ã¤ã³ãã¦ãéãã¦ã¯ãããªããã¨ã示ãã¾ãã This setting is not available on MAS builds or on macOS 13 and up.restoreStateboolean macOS 鿍奍 - 以åã®ã»ãã·ã§ã³ããç¶æ ã復å ãã¹ããã°ã¤ã³é ç®ã¨ãã¦ã¢ããªãéãããå ´åã¯ãtrueã§ãã ããã¯ãæå¾ã«éããã¨ãã«éãã¦ããã¦ã¤ã³ãã¦ãã¢ããªã復å ãã¹ããã¨ã示ãã¾ãã This setting is not available on MAS builds or on macOS 13 and up.statusstring macOS - can benot-registered,enabled,requires-approval, ornot-found.executableWillLaunchAtLoginboolean Windows - ã¢ããªããã°ã¤ã³æã«éãããã«è¨å®ããã¦ããããã®å®è¡ãã¼ãç¡å¹åããã¦ããªãå ´åãtrueã§ããopenAtLoginã¯argsãªãã·ã§ã³ãç¡è¦ããç¹ãç°ãªã£ã¦ãã¾ããä¸ããããå®è¡ãã¡ã¤ã«ããã°ã¤ã³æãªãããã®å¼æ°ãä¸ãããå ´åã«ãã®ããããã£ã¯ ç ã«ãªãã¾ããlaunchItemsObject[] Windowsnamestring Windows - ã¬ã¸ã¹ããªã¨ã³ããªã®ååã®å¤ãpathstring Windows - ã¬ã¸ã¹ããªã¨ã³ããªã«å¯¾å¿ããã¢ããªã®å®è¡å½¢å¼ãargsstring[] Windows - å®è¡å½¢å¼ã«æ¸¡ãã³ãã³ãã©ã¤ã³å¼æ°ãscopestring Windows - can beuserormachine. ã¬ã¸ã¹ããªã¨ã³ããªãHKEY_CURRENT USERã¾ãã¯HKEY_LOCAL_MACHINEã®ä¸ã«ãããã©ããã示ãã¾ããenabledboolean Windows - ã¢ããªã®ã¬ã¸ã¹ããªãã¼ãã¹ã¿ã¼ãã¢ããæ¿èªããã¦ãã¦ãã¿ã¹ã¯ããã¼ã¸ã£ã¨ Windows ã®è¨å®ã§enabledã¨ãã¦è¡¨ç¤ºããã¦ããå ´åãtrueã§ãã
app.setLoginItemSettings(settings) macOS Windowsâ
settingsObjectopenAtLoginboolean (ä»»æ) -trueã«ããã¨ãã°ã¤ã³æã«ã¢ããªãéããfalseã«ããã¨ãã°ã¤ã³é ç®ããã¢ããªãåãé¤ãã¾ãã çç¥å¤ã¯falseã§ããopenAsHiddenboolean (ä»»æ) macOS 鿍奍 -trueã«ããã¨ã¢ããªãé表示ã§éãã¾ãã çç¥å¤ã¯falseã§ãã ã¦ã¼ã¶ã¯ãã®è¨å®ãã·ã¹ãã ç°å¢è¨å®ãã夿´ãããã¨ãã§ããã®ã§ãç¾å¨ã®å¤ãåå¾ããããã«app.getLoginItemSettings().wasOpenedAsHiddenãã¢ããªãéãããã¨ãã«ç¢ºèªããããã«ãã¦ãã ããã This setting is not available on MAS builds or on macOS 13 and up.typestring (ä»»æ) macOS - ãã°ã¤ã³é ç®ã¨ãã¦è¿½å ãããµã¼ãã¹ã®ç¨®å¥ã çç¥å¤ã¯mainAppServiceã§ãã macOS 13 以éã§ã®ã¿å©ç¨ã§ãã¾ããmainAppService- é常ã®ã¢ããªã±ã¼ã·ã§ã³ãagentService- èµ·åã¨ã¼ã¸ã§ã³ãã®ããããã£ãªã¹ãåã ããããã£ãªã¹ãåã¯ãã¢ããªã®Contents/Library/LaunchAgentsãã£ã¬ã¯ããªå ã®ããããã£ãªã¹ãã«å¯¾å¿ãã¦ããå¿ è¦ãããã¾ããdaemonServicestring (ä»»æ) macOS - èµ·åã¨ã¼ã¸ã§ã³ãã®ããããã£ãªã¹ãåã ããããã£ãªã¹ãåã¯ãã¢ããªã®Contents/Library/LaunchDaemonsãã£ã¬ã¯ããªå ã®ããããã£ãªã¹ãã«å¯¾å¿ãã¦ããå¿ è¦ãããã¾ããloginItemServicestring (ä»»æ) macOS - ãã°ã¤ã³é ç®ã®ãµã¼ãã¹ã®ããããã£ãªã¹ãåã ããããã£ãªã¹ãåã¯ãã¢ããªã®Contents/Library/LoginItemsãã£ã¬ã¯ããªå ã®ããããã£ãªã¹ãã«å¯¾å¿ãã¦ããå¿ è¦ãããã¾ãã
serviceNamestring (ä»»æ) macOS - ãµã¼ãã¹ã®åç§°ãtypeãããã©ã«ãã§ã¯ãªãå ´åã¯å¿ é ã§ãã macOS 13 以éã§ã®ã¿å©ç¨ã§ãã¾ããpathstring (ä»»æ) Windows - ãã°ã¤ã³æã«èµ·åããå®è¡å½¢å¼ã çç¥å¤ã¯process.execPathã§ããargsstring[] (ä»»æ) Windows - å®è¡å½¢å¼ã«æ¸¡ãã³ãã³ãã©ã¤ã³å¼æ°ã çç¥å¤ã¯ç©ºã®é åã§ãã ãã¹ã¯ãã³ãã¬ã¼ãæååã«ããããã«ãã¾ããããenabledboolean (ä»»æ) Windows -trueã®å ´åãã¹ã¿ã¼ãã¢ããæ¿èªãããã¬ã¸ã¹ããªãã¼ã夿´ããã¿ã¹ã¯ããã¼ã¸ã£ã¨ Windows ã®è¨å®ã§ã¢ããªãenable / disableã«ãã¾ãã çç¥å¤ã¯trueã§ããnamestring (ä»»æ) Windows - ã¬ã¸ã¹ããªã«æ¸ãè¾¼ãååã®å¤ã ããã©ã«ãã¯ã¢ããªã® AppUserModelId() ã§ãã
ã¢ããªã®ãã°ã¤ã³é ç®è¨å®ãè¨å®ãã¾ãã
Windows ã§ Electron ã® autoUpdater ã使ç¨ãã¦ãããã¤ã¾ã Squirrel ã使ç¨ãã¦ããå ´åãèµ·åãã¹ãå®è¡ãã¡ã¤ã«åãã1é層ä¸ã«è¨å®ããå¿
è¦ãããã¾ãããã㯠Squirrel ãèªåçã«ã¹ã¿ãã¢ããªã±ã¼ã·ã§ã³ã使ããèªåçã«ææ°ãã¼ã¸ã§ã³ã®ã¢ããªã±ã¼ã·ã§ã³ãèµ·åããããã§ãã
const { app } = require('electron')
const path = require('node:path')
const appFolder = path.dirname(process.execPath)
const ourExeName = path.basename(process.execPath)
const stubLauncher = path.resolve(appFolder, '..', ourExeName)
app.setLoginItemSettings({
openAtLogin: true,
path: stubLauncher,
args: [
// ããã«ããã®ã¢ããªããã°ã¤ã³ã«ãã£ã¦èµ·åããããã¨ã示ã
// ãã©ã¡ã¼ã¿ã渡ããã¨ã¯ã§ãã¾ãããå¿
é ã§ã¯ããã¾ãã
]
})
macOS 13 以éã§ãã°ã¤ã³é
ç®ã¨ãã¦ç°ãªããµã¼ãã¹ãè¨å®ããæ¹æ³ã«ã¤ãã¦ã¯ã SMAppService ãåç
§ãã¦ãã ããã
app.isAccessibilitySupportEnabled() macOS Windowsâ
Returns boolean - true if Chromium's accessibility support is enabled, false otherwise. ãã®APIã¯ãã¹ã¯ãªã¼ã³ãªã¼ãã¼ãªã©ã®æ¯æ´æè¡ã使ã£ã¦ãããã¨ãæ¤åºãããå ´åãtrue ãè¿ãã¾ãã 詳細ã«ã¤ãã¦ã¯ãhttps://www.chromium.org/developers/design-documents/accessibility ãåç
§ãã¦ãã ããã
app.setAccessibilitySupportEnabled(enabled) macOS Windowsâ
enabledboolean - ã¢ã¯ã»ã·ããªãã£ããªã¼ ã¬ã³ããªã³ã°ãæå¹ãããã¯ç¡å¹ã«ãã¾ãã
Manually enables Chromium's accessibility support, allowing to expose accessibility switch to users in application settings. 詳細㯠Chromium ã®ã¢ã¯ã»ã·ããªãã£ããã¥ã¡ã³ã ãã覧ãã ããã æ¢å®ã§ã¯ç¡å¹ã§ãã
ãã® API 㯠ready ã¤ãã³ããçºçããå¾ã§å¼ã°ãªããã°ããã¾ããã
[!NOTE] ã¢ã¯ã»ã·ããªãã£ããªã¼ãã¬ã³ããªã³ã°ããã¨ãã¢ããªã®ããã©ã¼ãã³ã¹ã«é¡èãªå½±é¿ãä¸ããå¯è½æ§ãããã¾ãã æ¢å®ã§æå¹ã«ãã¹ãã§ã¯ããã¾ããã ãã®ã¡ã½ãããå¼ã³åºãã¨ã次ã®ã¢ã¯ã»ã·ããªãã£æ¯æ´æ©è½ãæå¹ã«ãªãã¾ã:
nativeAPIsãwebContentsãinlineTextBoxesãextendedPropertiesã
app.getAccessibilitySupportFeatures() macOS Windowsâ
æ»ãå¤ string[] - ç¾å¨æå¹ãªã¢ã¯ã»ã·ããªãã£æ¯æ´è¦ç´ ã®ååã示ãæååã®é
åã åãããå¤:
nativeAPIs- ãã¤ãã£ã OS ã®ã¢ã¯ã»ã·ããªã㣠API çµ±åãæå¹ãwebContents- ã¦ã§ãã³ã³ãã³ãã®ã¢ã¯ã»ã·ããªãã£ããªã¼ã®å ¬éãæå¹ãinlineTextBoxes- ã¤ã³ã©ã¤ã³ããã¹ãã®ããã¯ã¹ (æåç¯å²ã®ããã¯ã¹) ãæå¹ãextendedProperties- æ¡å¼µã¢ã¯ã»ã·ããªãã£ããããã£ãæå¹ãscreenReader- ã¹ã¯ãªã¼ã³ãªã¼ãã¼ç¨ã®ã¢ã¼ããæå¹ãhtml- HTML ã¢ã¯ã»ã·ããªãã£ããªã¼ã®æ§ç¯ãæå¹ãlabelImages- èªåç»å注éã®ã¢ã¯ã»ã·ããªãã£æ¯æ´ãpdfPrinting- PDF å°å·ã®ã¢ã¯ã»ã·ããªãã£æ¯æ´ãæå¹ã
注é:
- ã¢ã¯ã»ã·ããªãã£ã¢ã¼ããæå¹ã§ãªãå ´åããã®é åã¯ç©ºã«ãªãã¾ãã
- 徿¥ã®çå½å¤ã®ãã§ãã¯ã«ã¯
app.isAccessibilitySupportEnabled()ã使ç¨ãã¦ãã ããããã®ã¡ã½ããã¯è©³ç´°ãªè¨ºæããã¬ã¡ããªã«ä½¿ç¨ãããã¨ãæ¨å¥¨ãã¾ãã
ãµã³ãã«:
const { app } = require('electron')
app.whenReady().then(() => {
if (app.getAccessibilitySupportFeatures().includes('screenReader')) {
// ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã§ã®åä½ãæ¹åããããã«ãä¸é¨ã®ã¢ã㪠UI ã夿´ãã¾ãã
}
})
app.setAccessibilitySupportFeatures(features) macOS Windowsâ
featuresstring[] - æå¹ã«ããã¢ã¯ã»ã·ããªãã£æ©è½ã®é åã
以ä¸ã¯åãããå¤ã§ãã
nativeAPIs- ãã¤ãã£ã OS ã®ã¢ã¯ã»ã·ããªã㣠API çµ±åãæå¹ãwebContents- ã¦ã§ãã³ã³ãã³ãã®ã¢ã¯ã»ã·ããªãã£ããªã¼ã®å ¬éãæå¹ãinlineTextBoxes- ã¤ã³ã©ã¤ã³ããã¹ãã®ããã¯ã¹ (æåç¯å²ã®ããã¯ã¹) ãæå¹ãextendedProperties- æ¡å¼µã¢ã¯ã»ã·ããªãã£ããããã£ãæå¹ãscreenReader- ã¹ã¯ãªã¼ã³ãªã¼ãã¼ç¨ã®ã¢ã¼ããæå¹ãhtml- HTML ã¢ã¯ã»ã·ããªãã£ããªã¼ã®æ§ç¯ãæå¹ãlabelImages- èªåç»å注éã®ã¢ã¯ã»ã·ããªãã£æ¯æ´ãpdfPrinting- PDF å°å·ã®ã¢ã¯ã»ã·ããªãã£æ¯æ´ãæå¹ã
ãµãã¼ãããã¦ããå
¨æ©è½ãç¡å¹åããã«ã¯ã空ã®é
å [] ãæ¸¡ãã¦ãã ããã
ãµã³ãã«:
const { app } = require('electron')
app.whenReady().then(() => {
// æ©è½ã®ãµãã»ãããæå¹å:
app.setAccessibilitySupportFeatures([
'screenReader',
'pdfPrinting',
'webContents'
])
// ä»ã®ãã¸ãã¯
// ãã°ãããã¦ãããå
¨æ©è½ãç¡å¹ã«:
app.setAccessibilitySupportFeatures([])
})
app.showAboutPanel()â
ã¢ããªã® About ããã«ã表示ãã¾ãã ãã®ãªãã·ã§ã³ã¯ app.setAboutPanelOptions(options)ã§ä¸æ¸ãã§ãã¾ãã ãã®é¢æ°ã¯éåæå®è¡ããã¾ãã
app.setAboutPanelOptions(options)â
Aboutããã«ã®ãªãã·ã§ã³ãè¨å®ãã¾ãã macOS ã®å ´åãããã¯ã¢ããªã® .plist ãã¡ã¤ã«ã§å®ç¾©ãããå¤ã䏿¸ããã¾ãã 詳細㯠Apple ããã¥ã¡ã³ã ãã覧ãã ããã Linuxã®å ´åã表示ããããã«å¤ãã»ããããªããã°ãªãã¾ãããããã©ã«ãã®å¤ã¯ããã¾ããã
credits ãè¨å®ãã¦ããªãã¦ãã¢ããªã«è¡¨ç¤ºãããå ´åãAppKit 㯠NSBundle ã® main ã¯ã©ã¹ã¡ã½ããããè¿ããããã³ãã«å
ã§ã"Credits.html"ã"Credits.rtf"ã"Credits.rtfd" ã®é çªã§ãã¡ã¤ã«ãæ¢ãã¾ãã æåã«è¦ã¤ãã£ããã¡ã¤ã«ã使ç¨ããã¾ããè¦ã¤ãããªãå ´åããã®æ
å ±ã®é¨åã¯ç©ºç½ã®ã¾ã¾ã§ãã 詳細㯠Apple ã® ããã¥ã¡ã³ã ãã覧ãã ããã
app.isEmojiPanelSupported()â
æ»ãå¤ boolean - ç¾å¨ã® OS ãã¼ã¸ã§ã³ããã¤ãã£ãã®çµµæåããã«ã¼ã許å¯ãã¦ãããã©ããã
app.showEmojiPanel() macOS Windowsâ
ãã©ãããã©ã¼ã ã®ãã¤ãã£ãã®çµµæåããã«ã¼ã表示ãã¾ãã
app.startAccessingSecurityScopedResource(bookmarkData) MASâ
bookmarkDatastring -dialog.showOpenDialogã¾ãã¯dialog.showSaveDialogã¡ã½ããã«ãã£ã¦è¿ããããbase64 ã§ã¨ã³ã³ã¼ããããã»ãã¥ãªãã£ã¹ã³ã¼ãã®ããã¯ãã¼ã¯ãã¼ã¿ã
æ»ãå¤ Function - ã»ãã¥ãªãã£ã¹ã³ã¼ãä»ããã¡ã¤ã«ã¸ã®ã¢ã¯ã»ã¹ãçµäºããã°ããã®é¢æ°ã®å¼ã³åºãã ããªããã°ãªãã¾ããã ããã¯ãã¼ã¯ã¸ã®ã¢ã¯ã»ã¹ã忢ããã®ãå¿ããå ´åã ã«ã¼ãã«ãªã½ã¼ã¹ããªã¼ã¯ããã¢ããªã®ãµã³ãããã¯ã¹å¤é¨ã«ã¢ã¯ã»ã¹ããæ¨©éã失ããã¾ãã
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)
})
// ... ã¢ããªãåèµ·å ...
const stopAccessingSecurityScopedResource = app.startAccessingSecurityScopedResource(bookmark)
fs.readFileSync(filepath)
stopAccessingSecurityScopedResource()
ã»ãã¥ãªãã£ã¹ã³ã¼ãä»ããªã½ã¼ã¹ã¸ã®ã¢ã¯ã»ã¹ãéå§ãã¾ãã With this method, Electron applications that are packaged for the Mac App Store may reach outside their sandbox to access files chosen by the user. ãã®æ©è½ã®åä½ã«ã¤ãã¦ã¯ã Appleã®ããã¥ã¡ã³ã ãåç §ãã¦ãã ããã
app.enableSandbox()â
ã¢ããªã§å®å
¨ãµã³ãããã¯ã¹ã¢ã¼ããæå¹ã«ãã¾ãã ããã¯ãWebPreferences ã® sandbox ãã©ã°ã®å¤ã«é¢ä¿ãªãããã¹ã¦ã®ã¬ã³ãã©ã¼ããµã³ãããã¯ã¹ã§èµ·åããããã¨ãæå³ãã¾ãã
ãã®ã¡ã½ããã¯ã¢ããªã ready ã«ãªãåã ãã§ããå¼ã³åºããã¨ãã§ãã¾ããã
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â
enabledboolean -ãã¼ãã¼ãå ¥åã®ã»ãã¥ãªãã£ãä¿è·ãæå¹ã«ãããã©ãã
ã¢ããªã±ã¼ã·ã§ã³ã® ãã¼ãã¼ãå
¥åã®ã»ãã¥ãªãã£ãä¿è· ã®æå¹åãè¨å®ãã¾ãã
ãã® API ãå©ç¨ããã¨ããã¹ã¯ã¼ããªã©ã®éè¦ãªæ å ±ãæ©å¯æ å ±ãä»ã®ããã»ã¹ã®ååããé²ãã¾ãã
詳細㯠Apple ã®ããã¥ã¡ã³ã ãåç §ãã¦ãã ããã
ãã¼ãã¼ãå
¥åã®ã»ãã¥ãªãã£ãä¿è· ã¯å¿
è¦ãªã¨ãã«ã®ã¿æå¹ã«ããä¸è¦ãªã¨ãã«ã¯ç¡å¹ã«ãã¦ãã ããã
app.setProxy(config)â
configProxyConfig
æ»ãå¤ Promise<void> - ãããã·è¨å®å¦çãå®äºããã¨å®è¡ããã¾ãã
Session ã®é¢é£ä»ããªãã§è¡ããããããã¯ã¼ã¯ãªã¯ã¨ã¹ãã®ãããã·è¨å®ãã»ãããã¾ãã ç¾å¨ããã㯠ã¦ã¼ãã£ãªãã£ããã»ã¹ å ã® net ãç¨ãã¦è¡ããããªã¯ã¨ã¹ãã¨ãã©ã³ã¿ã¤ã ã«ãã£ã¦è¡ãããå é¨ãªã¯ã¨ã¹ã (ä¾: å°çä½ç½®æ å ±ã¯ã¨ãª) ã«å½±é¿ãã¾ãã
ãã®ã¡ã½ãã㯠app ã ready ã«ãªãåã§ã®ã¿å¼ã³åºããã¨ãã§ãã¾ãã
app.resolveProxy(url)â
urlURL
æ»ãå¤ Promise<string> - ã¦ã¼ãã£ãªãã£ããã»ã¹ ã§ net ãç¨ãã¦ãªã¯ã¨ã¹ããè¡ãã¨ãã«ä½¿ç¨ããã url ã®ãããã·æ
å ±ã§è§£æ±ºãã¾ãã
app.setClientCertRequestPasswordHandler(handler) Linuxâ
-
handlerFunction<Promise<string>>clientCertRequestParamsãªãã¸ã§ã¯ãhostnamestring - ã¯ã©ã¤ã¢ã³ãè¨¼ææ¸ãå¿ è¦ã¨ãããµã¤ãã®ãã¹ãåtokenNamestring - æå·åããã¤ã¹ã®ãã¼ã¯ã³ (ã¾ãã¯ã¹ããã) åisRetryboolean - ãã¹ã¯ã¼ãã®è©¦è¡ã§ä»¥åã«å¤±æãã試è¡ããã£ããã©ãã
æ»ãå¤
Promise<string>- Resolve ã¯ãã¹ã¯ã¼ãã§è§£æ±ºããã¾ãã
ã¯ã©ã¤ã¢ã³ãè¨¼ææ¸ã hostname ã§ããã¯ãè§£é¤ããããã«ãã¹ã¯ã¼ããå¿
è¦ãªå ´åã«ãã³ãã©ãå¼ã°ãã¾ãã
const { app } = require('electron')
async function passwordPromptUI (text) {
return new Promise((resolve, reject) => {
// ãã¹ã¯ã¼ããå
¥åããç»é¢ã表示
// ...
// ...
resolve('ãã¹ã¯ã¼ã')
})
}
app.setClientCertRequestPasswordHandler(async ({ hostname, tokenName, isRetry }) => {
const text = `${hostname}ã®è¨¼ææ¸ãèªè¨¼ããããã${tokenName}ã¸ãã°ã¤ã³ãã¦ãã ããã`
const password = await passwordPromptUI(text)
return password
})
ããããã£â
app.accessibilitySupportEnabled macOS Windowsâ
A boolean property that's true if Chromium's accessibility support is enabled, false otherwise. ãã®ããããã£ã¯ãããã¹ãèªã¿ä¸ããªã©ã®ã¢ã·ã¹ãæè¡ã使ã£ã¦ãããã¨ãæ¤åºãããå ´åãtrue ãè¿ãã¾ãã Setting this property to true manually enables Chromium's accessibility support, allowing developers to expose accessibility switch to users in application settings.
詳細㯠Chromium ã®ã¢ã¯ã»ã·ããªãã£ããã¥ã¡ã³ã ãã覧ãã ããã æ¢å®ã§ã¯ç¡å¹ã§ãã
ãã® API 㯠ready ã¤ãã³ããçºçããå¾ã§å¼ã°ãªããã°ããã¾ããã
[!NOTE] ã¢ã¯ã»ã·ããªãã£ããªã¼ãã¬ã³ããªã³ã°ããã¨ãã¢ããªã®ããã©ã¼ãã³ã¹ã«é¡èãªå½±é¿ãä¸ããå¯è½æ§ãããã¾ãã æ¢å®ã§æå¹ã«ãã¹ãã§ã¯ããã¾ããã
app.applicationMenuâ
Menu | null åã®ããããã£ã§ããè¨å®ããã¦ããã° Menu ããããã¦ããªããã° null ãè¿ãã¾ãã ã¦ã¼ã¶ã¯ãã®ããããã£ã« Menu ãæ¸¡ããã¨ãã§ãã¾ãã
app.badgeCount Linux macOSâ
Integer åã®ããããã£ã§ããç¾å¨ã®ã¢ããªã®ããã¸ã«ã¦ã³ããè¿ãã¾ãã ã«ã¦ã³ãã 0 ã«è¨å®ããã¨ããã¸ãé表示ã«ãã¾ãã
macOS ã§ã¯ãã¼ã以å¤ã®æ´æ°ãè¨å®ããã¨ãããã¯ã¢ã¤ã³ã³ã«è¡¨ç¤ºããã¾ãã Linux ã§ã¯ Unity ã©ã³ãã£ã¼ã§ã®ã¿åä½ãã¾ãã
[!NOTE] Unity ã©ã³ãã£ã¼ã¯åä½ã«ããã£ã¦
.desktopãã¡ã¤ã«ãå¿ è¦ã¨ãã¾ãã 詳ããæ å ±ã¯ãUnity çµ±åããã¥ã¡ã³ã ããåç §ãã ããã
[!NOTE] macOS ã§ãã®ããããã£ã广ãçºæ®ããã«ã¯ãã¢ããªã±ã¼ã·ã§ã³ã«éç¥ã表示ããæ¨©éããããã¨ã確ããã¦ãã ããã
app.commandLine èªã¿åºãå°ç¨â
CommandLine ãªãã¸ã§ã¯ãã§ããChromium ã使ç¨ããã³ãã³ãã©ã¤ã³å¼æ°ã®èªã¿åãã¨æä½ãã§ãã¾ãã
app.dock macOS èªã¿åºãå°ç¨â
Dock | undefined åã®ããããã£ã§ãã(macOS ã§ã¯ Dock ããã®ä»ã®ãã©ãããã©ã¼ã ã§ã¯ undefined ã«ãªãã¾ãã) ã¦ã¼ã¶ã¼ã®Dockã«ããã¢ããªã¢ã¤ã³ã³ã«å¯¾ãã¦æä½ãå®è¡ã§ãã¾ãã
app.isPackaged èªã¿åºãå°ç¨â
ã¢ããªãããã±ã¼ã¸ããã¦ããå ´åã¯trueããã以å¤ã¯ false ãè¿ã boolean ããããã£ã å¤ãã®ã¢ããªã±ã¼ã·ã§ã³ã§ã¯ããã®ããããã£ãç¨ãã¦éçºçã®ç°å¢ã¨è£½åçã®ç°å¢ãåºå¥ã§ãã¾ãã
app.toastActivatorCLSID Windows Readonlyâ
A string property that returns the app's Toast Activator CLSID.
app.nameâ
string åã®ããããã£ã§ããç¾å¨ã®ã¢ããªã±ã¼ã·ã§ã³åã示ãã¾ããã¢ããªã±ã¼ã·ã§ã³ã® package.json ãã¡ã¤ã«å
ã«ããååã«ãªãã¾ãã
é常ãpackage.json ã® name ãã£ã¼ã«ãã¯ãnpm ã®ã¢ã¸ã¥ã¼ã«ä»æ§ã«åºã¥ãã¦å°æåã ãã®çãååãè¨å®ããã¾ãã é常ããã¹ã¦å¤§æåã§å§ã¾ãã¢ããªã±ã¼ã·ã§ã³ã®ååã¨ãªã productName ãã£ã¼ã«ããæå®ãã¦ãã ãããElectronã«ãã£ã¦ãname ãããåªå
ããã¾ãã
app.userAgentFallbackâ
ãã® string 㯠Electron ãã°ãã¼ãã«ãã©ã¼ã«ããã¯ã¨ãã¦ä½¿ç¨ããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãæååã§ãã
ããã¯ãwebContents ã¾ã㯠session ã¬ãã«ã§ã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããè¨å®ããã¦ããªãå ´åã«ä½¿ç¨ãããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã§ãã ã¢ããªå
¨ä½ãåãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããæã£ã¦ãããã¨ã確èªããã®ã«å½¹ç«ã¡ã¾ãã ãªã¼ãã¼ã©ã¤ããããå¤ã確å®ã«ä½¿ç¨ãããããã«ãã¢ããªã®åæåã®ã§ããã ãæ©ãæ®µéã§ã«ã¹ã¿ã å¤ã«è¨å®ãã¦ãã ããã
app.runningUnderARM64Translation Readonly macOS Windowsâ
boolean åã§ããtrue ã®å ´åã¯ã¢ããªãç¾å¨ ARM64 äºæ (macOS ã® Rosetta 夿ç°å¢ ã Windows ã® WOW ãªã©) ã§åä½ãã¦ãããã¨ã示ãã¾ãã
ãã®ããããã£ã使ç¨ããã°ãRosetta ã WOW ä¸ã§ x64 çã誤ã£ã¦å®è¡ãã¦ããã¦ã¼ã¶ã¼ã« arm64 çã¢ããªã±ã¼ã·ã§ã³ããã¦ã³ãã¼ãããããä¿ããã¨ãã§ãã¾ãã