Electron æ¯ä¸ä¸ªä½¿ç¨ JavaScriptãHTML å CSS æå»ºæ¡é¢åºç¨ç¨åºçæ¡æ¶
å®è£
mkdir my-app && cd my-app
npm init
å¨é¡¹ç®æ ¹ç®å½ä¼çæ package.json
{
"name": "my-app",
"version": "1.0.0",
"description": "Hello World!",
"main": "main.js",
"author": "Jane Doe",
"license": "MIT"
}
å®è£ ä¾èµå
npm install --save-dev electron
æ·»å å¼åæ¨¡å¼æå¼æ¨çåºç¨å½ä»¤
"scripts": {
"start": "electron ."
}
è¿è¡å½ä»¤ï¼å¯å¨åºç¨ç¨åº
npm start
å
¥å£é½æ¯ main æä»¶ãè¿ä¸ªæä»¶æ§å¶äºä¸»è¿ç¨ï¼å®è¿è¡å¨ä¸ä¸ªå®æ´çNode.jsç¯å¢ä¸
å建 index.html 页é¢
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
çªå£ä¸æå¼æ¨ç页é¢
const {
app,
BrowserWindow
} = require('electron');
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600
});
win.loadFile('index.html');
}
app.whenReady().then(() => {
createWindow()
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
const win = new BrowserWindow({
frame: false
})
const win = new BrowserWindow({
titleBarStyle: 'hidden'
})
const win = new BrowserWindow({
titleBarStyle: 'customButtonsOnHover'
})
å建ä¸ä¸ªå为 preload.js çæ°èæ¬å¦ä¸
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const dependency of ['chrome', 'node', 'electron']) {
replaceText(`${dependency}-version`, process.versions[dependency])
}
})
å¨å建çªå£æ¹æ³ä¸ä¼ é preload åæ°
const path = require('path')
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadFile('index.html')
}
const { contextBridge } = require('electron')
contextBridge.exposeInMainWorld(
'versions', {
// è½æ´é²çä¸ä»
ä»
æ¯å½æ°ï¼æä»¬è¿å¯ä»¥æ´é²åé
node:
() => process.versions.node,
chrome:
() => process.versions.chrome,
electron:
() => process.versions.electron,
}
);
éè¿ preload.js èæ¬å° versions è¿ä¸å
¨å±åéæ´é²ç»æ¸²æå¨
const myWindow = new BrowserWindow({
webPreferences: {
spellcheck: true
}
})
设置æ¼åæ£æ¥å¨ä»¥æ£æ¥è±è¯ å æ³è¯
myWindow.session
.setSpellCheckerLanguages([
'en-US', 'fr'
])
const { app } = require('electron');
app.on('session-created', (session) => {
console.log(session);
})
// ç«å³éå¯å½åå®ä¾å¹¶åæ°çå®ä¾æ·»å æ°çå½ä»¤è¡åæ°ç示ä¾
app.relaunch({
args: process.argv.slice(1).concat(['--relaunch']);
})
app.exit(0);
| :- | :- |
|---|---|
quit | å°è¯å ³éææçªå£ # |
exit | ä½¿ç¨ exitCode ç«å³éåº # |
relaunch | å½åå®ä¾éåºï¼éå¯åºç¨ # |
isReady | 已宿åå§åè¿å boolean # |
whenReady | åå§å宿 # |
focus | è·å¾ç¦ç¹/æ¿æ´»ç app # |
hide | éèææçåºç¨çªå£ï¼ä¸æ¯æå°å # |
isHidden (mac) | ææçªå£æ¯å¦é½è¢«éè # |
show (mac) | æ¾ç¤ºéèåçåºç¨ç¨åºçªå£ # |
setAppLogsPath | 设置æå建ä¸ä¸ªæ¨çåºç¨ç¨åºæ¥å¿ç®å½ # |
getAppPath | è·åå½ååºç¨ç¨åºç®å½ # |
getPath(name) | ä¸ name å ³èçç®å½ææä»¶çè·¯å¾ # |
getFileIcon | ä¸ä¸ª NativeImage ç±»åçåºç¨å¾æ # |
setPath(name) | éå name çè·¯å¾ç¹å®æä»¶å¤¹ææä»¶ # |
getVersion | åºç¨ç¨åºççæ¬å· # |
getName | åºç¨ç¨åºçåç§° # |
setName | 设置å½ååºç¨ç¨åºçåå # |
getLocale | å½ååºç¨ç¨åºåºå # |
getLocaleCountryCode | è·åå忝 ISO 3166 å½å®¶ä»£ç # |
getSystemLocale | å½åç³»ç»è¯è¨ç¯å¢ # |
addRecentDocument (win/mac) | æè¿æå¼çæä»¶åè¡¨æ·»å æ°è·¯å¾ # |
clearRecentDocuments (win/mac) | æ¸ ç©ºæè¿æå¼çææ¡£å表# |
setAsDefaultProtocolClient | 设置åè®®(URI scheme)é»è®¤å¤çç¨åº # |
removeAsDefaultProtocolClient | ç§»é¤é»è®¤å¤çå¨ # |
isDefaultProtocolClient | 坿§è¡ç¨åºæ¯å¦æ¯åè®® # |
getApplicationNameForProtocol | è¿åé»è®¤å¤çå¨çåºç¨ç¨åºåç§° # |
getApplicationInfoForProtocol (win/mac) | è¿åå å«åºç¨ç¨åºåç§° # |
setUserTasks (win) | æ·»å tasks å°Jump ListçTasksç±»å« # |
getJumpListSettings (win) | è·å跳转å表 # |
setJumpList (win) | 设置跳转å表 # |
requestSingleInstanceLock | è¿ååºç¨ç¨åºå®ä¾æ¯å¦æååäºé # |
hasSingleInstanceLock | è¿ååºç¨å®ä¾å½åæ¯å¦ææåä¾é # |
releaseSingleInstanceLock | éæ¾ææå建çé # |
setUserActivity (mac) | å建 NSUserActivity å¹¶å°å ¶è®¾ç½®ä¸ºå½åæ´»å¨ # |
getCurrentActivityType (mac) | æ£å¨è¿è¡ç activity çç±»å # |
invalidateCurrentActivity (mac) | 使å½åçHandoffç¨æ·æ´»å¨æ æ # |
resignCurrentActivity (mac) | å°å½å Handoff ç¨æ·æ´»å¨æ è®°ä¸ºéæ´»å¨ï¼ä½ä¸ä½¿å ¶å¤±æ # |
updateCurrentActivity (mac) | å°é¡¹ç®ä» ç¨æ·ä¿¡æ¯ åå¹¶å°å ¶å½å ç¨æ·ä¿¡æ¯ åå ¸ä¸ # |
setAppUserModelId (win) | æ¹åå½ååºç¨ç Application User Model ID 为 id # |
setActivationPolicy (mac) | 为ç»å®åºç¨è®¾ç½®æ¿æ´»çç¥ # |
importCertificate (linux) | å° pkcs12 æ ¼å¼çè¯ä¹¦å¯¼å ¥å°å¹³å°è¯ä¹¦åº # |
configureHostResolver | é 置主æºè§£æå¨ (DNS å DNS-over-HTTPS) # |
disableHardwareAcceleration | ç¦ç¨å½ååºç¨ç¨åºç硬件å é # |
disableDomainBlockingFor3DAPIs | GPU è¿ç¨é¢ç¹å´©æºï¼å¨æ¯ä¸ªåçåºç¡ä¸éæ°å¯å¨ï¼ç¦ç¨è¯¥è¡ä¸º # |
getAppMetrics | è¿å ProcessMetric[] # |
getGPUFeatureStatus | è¿å GPUFeatureStatus # |
getGPUInfo | GPU ä¿¡æ¯ # |
setBadgeCount (mac/linux) | åºç¨è®¾ç½®è®¡æ°å¨è§æ # |
getBadgeCount (mac/linux) | è·å计æ°å¨(badge)æ¾ç¤ºçå½åå¼ # |
isUnityRunning (linux) | åæ¡é¢ç¯å¢æ¯å¦ä¸º Unity å¯å¨å¨ # |
getLoginItemSettings (mac/win) | 为 openAtLogin 设置ç¸åçåæ°å·²ç¡®ä¿æ£ç¡®ç设置 # |
setLoginItemSettings (mac/win) | ä¼ éæå®åºç¨ç¨åºåç§°çåæ° # |
isAccessibilitySupportEnabled (mac/win) | æ¯å¦å¼å¯äºè¾ å©åè½ # |
setAccessibilitySupportEnabled (mac/win) | å¯ç¨æç¦ç¨è®¿é®æéæ è§å¾ # |
showAboutPanel | æ¾ç¤ºç¨åºç"å ³äº"颿¿é项 # |
setAboutPanelOptions | 设置 "å ³äº" 颿¿é项 # |
isEmojiPanelSupported | å½åæä½ç³»ç»æ¯å¦æ¯ææ¬å° emoji éæ©å¨ # |
showEmojiPanel (mac/win) | æå¼ç³»ç»èªèº«çemjioéåå¨ # |
startAccessingSecurityScopedResource (mac) | å¼å§è®¿é®å®å ¨èå´å çèµæº # |
enableSandbox | å¨åºç¨ç¨åºä¸å¯ç¨å®å ¨æ²çæ¨¡å¼ # |
isInApplicationsFolder (mac) | æ¯å¦ä»ç³»ç»åºç¨ç¨åºæä»¶å¤¹è¿è¡ # |
moveToApplicationsFolder (mac) | # |
isSecureKeyboardEntryEnabled (mac) | æ¯å¦å·²å¯ç¨å®å ¨é®çè¾å ¥ # |
setSecureKeyboardEntryEnabled (mac) | å¨åºç¨ä¸å¯ç¨å®å ¨é®çè¾å ¥ # |
const { app } = 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) => {
// è¾åºä»ç¬¬äºä¸ªå®ä¾ä¸æ¥æ¶å°çæ°æ®
console.log(additionalData);
// æäººè¯å¾è¿è¡ç¬¬äºä¸ªå®ä¾ï¼æä»¬åºè¯¥å
³æ³¨æä»¬ççªå£
if (myWindow) {
if (myWindow.isMinimized()) myWindow.restore();
myWindow.focus();
}
}
)
// å建 myWindow, å è½½åºç¨çå
¶ä½é¨å, etc...
app.whenReady().then(() => {
myWindow = createWindow();
})
}
| :- | :- |
|---|---|
will-finish-launching | åºç¡çå¯å¨çæ¶å被触å # |
ready | 宿åå§åæ¶ï¼è§¦å䏿¬¡ # |
window-all-closed | å¨ç¨åºå ³éçªå£ååä¿¡å· # |
before-quit | 彿æçªå£è¢«å ³éå触åï¼åºç¨ç¨åºå°éåº # |
will-quit | ææçªå£è¢«å ³éå触åï¼åºç¨ç¨åºå°éåº # |
quit | å¨åºç¨ç¨åºéåºæ¶è§¦å # |
open-file (mac) | å¨åºç¨ä¸æå¼ä¸ä¸ªæä»¶æ¶è§¦å # |
open-url (mac) | åºç¨ä¸æå¼ä¸ä¸ª URL æ¶è§¦å # |
activate (mac) | å½åºç¨è¢«æ¿æ´»æ¶è§¦å # |
did-become-active (mac) | ä¸å设å¤çæ´»å¨æ³è¦æ¢å¤æ¶å¨åæ¢æé´è§¦å # |
continue-activity (mac) | ä¸å设å¤çæ´»å¨éè¿ Handoff æ³è¦æ¢å¤æ¶è§¦å # |
will-continue-activity (mac) | æ¢å¤æ¥èªä¸å设å¤çæ´»å¨ä¹åå¨åæ¢æé´è§¦å # |
continue-activity-error (mac) | ä¸å设å¤çæ´»å¨æ æ³æ¢å¤æ¶å¨åæ¢æé´è§¦å # |
activity-was-continued (mac) | æ´»å¨å¨å¦ä¸ä¸ªè®¾å¤ä¸æåæ¢å¤å忢æé´è§¦å # |
update-activity-state (mac) | å½å³å°å¨å¦ä¸å°è®¾å¤ä¸æ¢å¤åæ¢æ¶è§¦å # |
new-window-for-tab (mac) | ç¨æ·ç¹å»åçç macOS æ°æ ç¾æé®æ¶è§¦å # |
browser-window-blur | å½ browserWindow å徿¨¡ç³æ¶è§¦å # |
browser-window-focus | å½ browserWindow è·å¾ç¦ç¹æ¶è§¦å # |
browser-window-created | å建æ°ç browserWindow æ¶è§¦å # |
web-contents-created | å建æ°ç webContents æ¶è§¦å # |
certificate-error | å½å¯¹ url ç certificate è¯ä¹¦éªè¯å¤±è´¥è§¦å # |
select-client-certificate | å½ä¸ä¸ªå®¢æ·è¯ä¹¦è¢«è¯·æ±çæ¶åååº # |
login | å½ webContents è¦è¿è¡åºæ¬èº«ä»½éªè¯æ¶è§¦å # |
gpu-info-update | æ¯å½æ GPU ä¿¡æ¯æ´æ°æ¶è§¦å # |
gpu-process-crashed | å½ gpu è¿ç¨å´©æºæå ³é(ææ»)æ¶è§¦å # |
renderer-process-crashed | 渲æå¨è¿ç¨å´©æºæå ³é(ææ»)æ¶è§¦å # |
render-process-gone | 渲æå¨è¿ç¨æå¤æ¶å¤±æ¶è§¦å # |
child-process-gone | åè¿ç¨æå¤æ¶å¤±æ¶è§¦å # |
accessibility-support-changed | å½ Chrome çè¾ å©åè½ç¶ææ¹åæ¶è§¦å # |
session-created | å建äºä¸ä¸ªæ°ç session å被触å # |
second-instance | å¨ä½ çåºç¨ç¨åºçé¦ä¸ªå®ä¾ä¸è§¦å # |
| :- | :- |
|---|---|
accessibilitySupportEnabled (mac/win) | æ¯å¦å¼å¯äºè¾ å©åè½ # |
applicationMenu | ä¼ é Menu æ¥ç»æ¤å±æ§èµå¼ # |
badgeCount (mac/linux) | è¿ååºç¨è§æ 计æ°ç Integer 屿§ # |
commandLine | Chromium 使ç¨çå½ä»¤è¡åæ° # |
dock (mac/åªè¯») | ç¨æ·dockä¸å¯¹åºç¨å¾æ è¿è¡æä½ # |
isPackaged (åªè¯») | åºç¨æ¯å¦å·²ç»æå # |
name | å½ååºç¨ç¨åºçåç§° # |
userAgentFallback | å ¨å±åéçç¨æ·ä»£çå符串 # |
runningUnderRosettaTranslation | æç¤ºä¸è½½åºç¨ç¨åºç arm64 çæ¬ # |
runningUnderARM64Translation (mac/win) | ååºç¨æ£å¨ä½¿ç¨ ARM64 è¿è¡ç¯å¢ # |
| :- | :- |
|---|---|
width æ´æ° | çªå£ç宽度(以åç´ ä¸ºåä½)ãé»è®¤å¼ (800) |
height æ´æ° | çªå£çé«åº¦(以åç´ ä¸ºåä½)ãé»è®¤å¼ (600) |
x æ´æ° (å¯é) | çªå£ç¸å¯¹äºå±å¹å·¦ä¾§åç§»éãé»è®¤å¼çªå£å± ä¸ |
y æ´æ° (å¯é) | çªå£ç¸å¯¹äºå±å¹é¡¶ç«¯åç§»éãé»è®¤å¼çªå£å± ä¸ |
useContentSize boolean | (宽) å (é«) 设置为web页é¢ç尺寸ãé»è®¤å¼ (false) |
center boolean | çªå£æ¯å¦å¨å±å¹å± ä¸ãé»è®¤å¼ (false) |
minHeight æ´æ° | çªå£çæå°é«åº¦ãé»è®¤å¼ (0) |
maxWidth æ´æ° | çªå£çæå¤§å®½åº¦ãé»è®¤å¼ä¸é |
maxHeight æ´æ° | çªå£çæå¤§é«åº¦ãé»è®¤å¼ä¸é |
resizable boolean | çªå£å¤§å°æ¯å¦å¯è°æ´ãé»è®¤å¼ (true) |
movable boolean (win/mac) | çªå£æ¯å¦å¯ç§»å¨ãé»è®¤å¼ (true) |
minimizable boolean (win/mac) | çªå£æ¯å¦å¯æå°åãé»è®¤å¼ (true) |
maximizable boolean (win/mac) | çªå£æ¯å¦æå¤§åãé»è®¤å¼ (true) |
closable boolean (win/mac) | çªå£æ¯å¦å¯å ³éãé»è®¤å¼ (true) |
focusable boolean | çªå£æ¯å¦å¯ä»¥èç¦. é»è®¤å¼ (true)ãå¨ Windows ä¸è®¾ç½® (focusable: false) 乿å³çè®¾ç½®äº (skipTaskbar: true) å¨ Linux ä¸è®¾ç½® (focusable: false) æ¶çªå£åæ¢ä¸ wm 交äº, å¹¶ä¸çªå£å°å§ç»ç½®é¡¶ |
alwaysOnTop boolean | çªå£æ¯å¦æ°¸è¿å¨å«ççªå£çä¸é¢ãé»è®¤å¼ (false) |
fullscreen boolean | çªå£æ¯å¦å ¨å±ã为 (false) æ¶ macOS 䏿é®å°è¢«éèæç¦ç¨ãé»è®¤å¼ (false) |
fullscreenable boolean | çªå£æ¯å¦å¯ä»¥è¿å ¥å ¨å±ç¶æãmacOSä¸ï¼æå¤§å/ç¼©æ¾æé®æ¯å¦å¯ç¨ é»è®¤å¼ (true) |
simpleFullscreen boolean (mac) | å¨ macOS ä¸ä½¿ç¨ pre-Lion å ¨å±ãé»è®¤å¼ (false) |
skipTaskbar boolean (win/mac) | æ¯å¦å¨ä»»å¡æ 䏿¾ç¤ºçªå£ãé»è®¤å¼ (false) |
kiosk boolean | çªå£æ¯å¦è¿å ¥kiosk模å¼ãé»è®¤å¼ (false) |
title string | é»è®¤çªå£æ é¢ é»è®¤ä¸º ("Electron") ãå¦æç± (loadURL()) å è½½çHTMLæä»¶ä¸å«ææ ç¾ (<title>) ï¼æ¤å±æ§å°è¢«å¿½ç¥ |
icon NativeImage/string | çªå£å¾æ ãå¨ Windows 䏿¨èä½¿ç¨ (ICO) 徿 æ¥è·å¾æä½³çè§è§ææ, é»è®¤ä½¿ç¨å¯æ§è¡æä»¶ç徿 |
show boolean | çªå£æ¯å¦å¨åå»ºæ¶æ¾ç¤ºãé»è®¤å¼ (true) |
paintWhenInitiallyHidden boolean | å½ (show) 为 (false) 并䏿¸²æå¨åå被å建æ¶ï¼å®æ¯å¦åºæ¿æ´»ã为äºè®© (document.visibilityState) å¨ (show: false) çæ åµä¸ç¬¬ä¸æ¬¡å è½½æ¶æ£ç¡®å°å·¥ä½ï¼ä½ åºè¯¥æè¿ä¸ªè®¾ç½®æ (false)ã设置为 (false) å°ä¼å¯¼è´ (ready-to-show) äºä»¶ä¸è§¦åãé»è®¤å¼ (true) |
frame boolean | 设置为 (false) æ¶å¯ä»¥å建ä¸ä¸ªæ è¾¹æ¡çªå£ï¼é»è®¤å¼ (true) |
parent BrowserWindow | æå®ç¶çªå£ é»è®¤å¼ (null) |
modal boolean | å½åæ¯å¦ä¸ºæ¨¡æçªå£ãåªæå½çªå£æ¯åçªå£æ¶æèµ·ä½ç¨ãé»è®¤å¼ (false) |
acceptFirstMouse boolean (mac) | ç¹å» éæ´»å¨çªå£æ¯å¦ä¼ç©¿éå° web contentsãé»è®¤å¼ (false) |
disableAutoHideCursor boolean | æ¯å¦å¨æåæ¶éèå æ ãé»è®¤å¼ (false) |
autoHideMenuBar boolean | èªå¨éèèåæ ï¼é¤éæäº_(Alt)_é®ãé»è®¤å¼ (false) |
enableLargerThanScreen boolean (mac) | 使çªå£å°ºå¯¸å¯å¤§äºå±å¹ç大å°ãå ¶ä»æä½ç³»ç»é»è®¤å 许大äºå±å¹ççªå£ãé»è®¤å¼ (false) |
backgroundColor string | çªå£èæ¯è²ï¼æ ¼å¼ä¸º Hex, RGB, RGBA, HSL, HSLA æ CSS å½åé¢è²ã妿 (transparent) 设置为 (true)ï¼åæ¯æ #AARRGGBB æ ¼å¼çéæãé»è®¤å¼ (#FFF)ï¼ç½è²ï¼ |
hasShadow boolean | çªå£æ¯å¦æé´å½±. é»è®¤å¼ (true) |
opacity number (win/mac) | 设置çªå£çåå§éæåº¦ï¼å¨ 0.0ï¼å ¨éæï¼å 1.0ï¼å®å ¨ä¸éæï¼ä¹é´ ã ç®åä» å¨ Windows å macOSä¸å®ç°ã |
darkTheme boolean | 强å¶çªå£ä½¿ç¨æ·±è²ä¸»é¢ï¼åªå¨é¨åGTK+3æ¡é¢ç¯å¢ä¸ææã é»è®¤å¼ (false). |
transparent boolean | 使çªå£ éæã é»è®¤å¼ (false). å¨Windowsä¸ï¼ä» 卿 è¾¹æ¡çªå£ä¸èµ·ä½ç¨ã |
type string | çªå£çç±»å, é»è®¤ä¸ºæ®éçªå£. æ´å¤ä¿¡æ¯è§ä¸æ |
visualEffectState string (mac) | å¨ macOS 䏿å®å¤è§åºå¦ä½ååºçªå£æ´»å¨ç¶æã å¿ é¡»ä¸ (vibrancy) 屿§ä¸èµ·ä½¿ç¨ã å¯è½ç弿 |
visualEffectState.followWindow | å½çªå£å¤äºæ¿æ´»ç¶ææ¶ï¼åå°åºèªå¨æ¾ç¤ºä¸ºæ¿æ´»ç¶æï¼å½çªå£å¤äºéæ¿æ´»ç¶ææ¶ï¼åå°åºèªå¨æ¾ç¤ºä¸ºéæ¿æ´»ç¶æã é»è®¤ä¸ºè¯¥å¼ã |
visualEffectState.active | åå°åºä¸ç´æ¾ç¤ºä¸ºæ¿æ´»ç¶æã |
visualEffectState.inactive | åå°åºä¸ç´æ¾ç¤ºä¸ºéæ¿æ´»ç¶æã |
titleBarStyle string (win/mac) | çªå£æ 颿 æ ·å¼ãé»è®¤å¼ (default) |
titleBarStyle.default | åå«è¿å mac æè win çæ åæ é¢æ |
titleBarStyle.hidden | å¨ä¸ä¸ªéèçæ é¢æ åä¸ä¸ªå ¨å°ºå¯¸å¤§å°çå 容çªå£ä¸åå¾ç»æã å¨ macOS å , çªå£å°ä¸ç´æ¥æä½äºå·¦ä¸çæ åçªå£æ§å¶å¨ (âtraffic lightsâ)ã å¨ Windowsä¸ï¼å½ä¸ (titleBarOverlay: true) åå¹¶æ¶ï¼å®å°æ¿æ´»çªå£æ§ä»¶å å (详æ 请åé (titleBarOverlay))ï¼å¦åå°ä¸ä¼æ¾ç¤ºçªå£æ§ä»¶ã |
titleBarStyle.hiddenInset (mac) | éèæ é¢æ ï¼ä½¿ç¨çªå£è¾¹ç¼ç¨å¾®å°ççº¢ç»¿ç¯æé®æ¿ä»£ã |
titleBarStyle.customButtonsOnHover (mac) | éèçæ é¢æ çå ¨å°ºå¯¸çå 容çªå£ï¼ çº¢ç»¿ç¯æé®å¨é¼ æ æ¬åå¨çªå£å·¦ä¸æ¹æ¶æ¾ç¤ºã**注æ:**æ¤é项ç®åæ¯å®éªæ§çã |
trafficLightPosition Point (mac) | 卿 è¾¹æ¡çªå£ä¸è®¾ç½®ç¯ç»¿ç¯æé®ä½ç½®ã |
roundedCorners boolean (mac) | æ è¾¹æ¡çªå£å¨ macOS ä¸ï¼æ¯å¦åºè¯¥æåè§ã é»è®¤å¼ä¸º (true)ã 屿§è®¾ç½®ä¸º (false) ï¼å°é»æ¢çªå£æ¯å¯å ¨å±çã |
fullscreenWindowTitle | titleBarStyle 设置为 (hiddenInset) æ¶ï¼å¨ macOS å ¨å±æ¨¡å¼ä¸æ 颿 æ¾ç¤ºæ é¢ãé»è®¤å¼ä¸º (false). |
thickFrame boolean | 对 Windows ä¸çæ æ¡çªå£ä½¿ç¨ (WS_THICKFRAME) æ ·å¼ï¼ä¼å¢å æ åçªå£æ¡æ¶ã 设置为 (false) æ¶å°ç§»é¤çªå£çé´å½±åå¨ç». é»è®¤å¼ä¸º (true)ã |
vibrancy string (mac) | 为çªå£æ·»å ä¸ç§ç±»åç卿ææï¼ä» macOSã å¯ä»¥æ¯ (appearance-based)ï¼(light)ï¼(dark)ï¼(titlebar)ï¼(selection)ï¼(menu)ï¼(popover)ï¼(sidebar)ï¼(medium-light)ï¼(ultra-dark)ï¼(header)ï¼(sheet)ï¼(window)ï¼(hud)ï¼(fullscreen-ui)ï¼(tooltip)ï¼(content)ï¼(under-window) æ (under-page)ã 请注æ (appearance-based)ï¼(light)ï¼(dark)ï¼(medium-light) å (ultra-dark) å·²å¼ç¨ï¼å¨ macOS Catalina (10.15) ä¸å·²ç»ç§»é¤ã |
zoomToPageWidth boolean (mac) | å¨ macOS 䏿§å¶ï¼å½æä½ option ç¹å»å·¥å ·æ 绿è²çº¢ç»¿ç¯æé®æç¹å»çªå£ > æ¾å¤§èå项çè¡ä¸ºã å¦æä¸º (true)ï¼çªå£ä¸ºå°ä¼ç¼©æ¾å°éå宽度ï¼è¥ä¸º (false) å°ä¼æ¾å¤§å°å±å¹å®½åº¦ã è¿ä¹ä¼å½±åï¼ç´æ¥è°ç¨ (maximize()) çè¡ä¸ºã é»è®¤å¼ä¸º (false). |
tabbingIdentifier string (mac) | é项å¡ç»åç§°ï¼å 许å¨åçéæ©å¡ä¸æå¼çªå£ï¼macOS 10.12+ æ¯æã Windows ä¸ï¼æç¸åé项塿 è¯çå°ä¼ç»åå¨ä¸èµ·ã è¿ä¼æ·»å ä¸ä¸ªåçæ°å¢é项塿é®å°ä½ çªå£çé项塿 ï¼åæ¶ (app) åçªå£å è®¸æ¥æ¶ (new-window-for-tab) äºä»¶ã |
webPreferences Object | ç½é¡µåè½è®¾ç½®ã |
webPreferences.devTools boolean | æ¯å¦å¼å¯ DevTools. å¦æè®¾ç½®ä¸º (false), åæ æ³ä½¿ç¨ (BrowserWindow.webContents.openDevTools ()) æå¼ DevToolsã é»è®¤å¼ä¸º (true)ã |
webPreferences.nodeIntegration boolean | æ¯å¦å¯ç¨Node integration. é»è®¤å¼ä¸º (false). |
webPreferences.nodeIntegrationInWorker boolean | æ¯å¦å¨Webå·¥ä½å¨ä¸å¯ç¨äºNodeéæ. é»è®¤å¼ä¸º (false). æ´å¤å 容åè§ å¤çº¿ç¨ |
webPreferences.nodeIntegrationInSubFrames boolean å®éªæ§ | æ¯å¦å 许å¨å页é¢(iframe)æåçªå£(child window)ä¸éæNode.jsï¼ é¢å å è½½çèæ¬ä¼è¢«æ³¨å ¥å°æ¯ä¸ä¸ªiframeï¼ä½ å¯ä»¥ç¨ (process.isMainFrame) æ¥å¤æå½åæ¯å¦å¤äºä¸»æ¡æ¶ï¼main frameï¼ä¸ã |
webPreferences.preload string | å¨é¡µé¢è¿è¡å ¶ä»èæ¬ä¹åé¢å å è½½æå®çèæ¬ æ è®ºé¡µé¢æ¯å¦éæNode, æ¤èæ¬é½å¯ä»¥è®¿é®ææNode API èæ¬è·¯å¾ä¸ºæä»¶çç»å¯¹è·¯å¾ã å½ node integration å ³éæ¶, é¢å è½½çèæ¬å°ä»å ¨å±èå´éæ°å¼å ¥nodeçå ¨å±å¼ç¨æ å¿åèç¤ºä¾ |
webPreferences.sandbox boolean | å¦æè®¾ç½®è¯¥åæ°, æ²ç®±ç渲æå¨å°ä¸çªå£å ³è, 使å®ä¸Chromium OS-level çæ²ç®±å ¼å®¹, å¹¶ç¦ç¨ Node. js 弿ã å®ä¸ (nodeIntegration) çé项ä¸åï¼ä¸é¢å è½½èæ¬ç API 乿éå¶ãæ´å¤è¯¦æ |
webPreferences.session | Session 设置页é¢ç session è䏿¯ç´æ¥å¿½ç¥ Session 对象, ä¹å¯ç¨ (partition) é项æ¥ä»£æ¿ï¼å®æ¥åä¸ä¸ª partition å符串. åæ¶è®¾ç½®äº_(session)_ å _(partition)_æ¶, (session) çä¼å 级æ´é«. é»è®¤ä½¿ç¨é»è®¤ç session. |
webPreferences.partition | string (optional) - éè¿ session ç partition å符串æ¥è®¾ç½®çé¢session. 妿 (partition) 以 (persist:)å¼å¤´, 该页é¢å°ä½¿ç¨æç»ç sessionï¼å¹¶å¨ææé¡µé¢çæï¼ä¸ä½¿ç¨åä¸ä¸ª(partition). å¦ææ²¡æ (persist:) åç¼, 页é¢å°ä½¿ç¨ in-memory session. éè¿åé ç¸åç (partition), å¤ä¸ªé¡µå¯ä»¥å ±äº«åä¸ä¼è¯ã é»è®¤ä½¿ç¨é»è®¤ç session. |
webPreferences.zoomFactor number | 页é¢çé»è®¤ç¼©æ¾ç³»æ°, (3.0) 表示 (300%)ã é»è®¤å¼ä¸º (1.0). |
webPreferences.javascript boolean | æ¯å¦å¯ç¨ JavaScript æ¯æã é»è®¤å¼ä¸º (true)ã |
webPreferences.webSecurity boolean | å½è®¾ç½®ä¸º (false), å®å°ç¦ç¨åæºçç¥ (éå¸¸ç¨æ¥æµè¯ç½ç«), 妿æ¤é项䏿¯ç±å¼åè 设置çï¼è¿ä¼æ _(allowRunningInsecureContent)_设置为 (true). é»è®¤å¼ä¸º (true) |
webPreferences.allowRunningInsecureContent boolean | å 许ä¸ä¸ª https 页é¢è¿è¡æ¥èªhttp urlçJavaScript, CSS æ pluginsã é»è®¤å¼ä¸º (false) |
webPreferences.images boolean | å 许å è½½å¾çã é»è®¤å¼ä¸º (true) |
webPreferences.imageAnimationPolicy string | æå®å¦ä½è¿è¡å¾åå¨ç» (æ¯å¦ï¼ GIFç). å¯ä»¥æ¯ (animate), (animateOnce) æ (noAnimation)ãé»è®¤å¼ä¸º (animate) |
webPreferences.textAreasAreResizable boolean | å è®¸è°æ´ TextArea å ç´ å¤§å°ã é»è®¤å¼ä¸º (true) |
webPreferences.webgl boolean | å¯ç¨ WebGL æ¯æã é»è®¤å¼ä¸º (true) |
webPreferences.plugins boolean | æ¯å¦åºè¯¥å¯ç¨æä»¶ã é»è®¤å¼ä¸º (false) |
webPreferences.experimentalFeatures boolean | å¯ç¨ Chromium çå®éªåè½ã é»è®¤å¼ä¸º (false) |
webPreferences.scrollBounce boolean (mac) | å¯ç¨æ»å¨åå¼¹ï¼æ©¡ç®çï¼ææã é»è®¤å¼ä¸º (false) |
webPreferences.enableBlinkFeaturesstring | 以 (éå·) åéçéè¦å¯ç¨çç¹æ§å表ï¼è¬å¦ (CSSVariables,KeyboardEventKey) å¨ RuntimeEnabledFeatures.json5 æä»¶ä¸æ¥çè¢«æ¯æçææç¹æ§ |
webPreferences.disableBlinkFeatures string | 以 (,) åéçç¦ç¨ç¹æ§å表, å¦ (CSSVariables,KeyboardEventKey) å¨ RuntimeEnabledFeatures.json5 æä»¶ä¸æ¥çè¢«æ¯æçææç¹æ§ |
defaultFontFamily Object | 为 font-family 设置é»è®¤åä½ |
defaultFontFamily.standard string | é»è®¤å¼ä¸º (Times New Roman) |
defaultFontFamily.serif string | é»è®¤å¼ä¸º (Times New Roman) |
defaultFontFamily.sansSerif string | é»è®¤å¼ä¸º (Arial) |
defaultFontFamily.monospace string | é»è®¤å¼ä¸º (Courier New) |
defaultFontFamily.cursive string | é»è®¤å¼ä¸º (Script) |
defaultFontFamily.fantasy string | é»è®¤å¼ä¸º (Impact) |
defaultFontSize Integer | é»è®¤å¼ä¸º (16) |
defaultMonospaceFontSize Integer | é»è®¤å¼ä¸º (13) |
minimumFontSize Integer | é»è®¤å¼ä¸º (0) |
defaultEncoding string | é»è®¤å¼ä¸º (ISO-8859-1) |
backgroundThrottling boolean | æ¯å¦å¨é¡µé¢æä¸ºèæ¯æ¶éå¶å¨ç»å计æ¶å¨ã è¿ä¹ä¼å½±åå° Visibility APIãé»è®¤å¼ä¸º (true) |
offscreen boolean | æ¯å¦ç»å¶å渲æå¯è§åºåå¤ççªå£ãé»è®¤å¼ä¸º (false)ãæ´å¤è¯¦æ , 请åè§ offscreen rendering tutorial |
contextIsolation boolean | æ¯å¦å¨ç¬ç« JavaScript ç¯å¢ä¸è¿è¡ Electron APIåæå®ç_(preload)_ èæ¬ãé»è®¤ä¸º (true)ã (é¢å è½½)èæ¬æè¿è¡çä¸ä¸æç¯å¢åªè½è®¿é®å ¶èªèº«ä¸ç¨ç (ææ¡£) åå ¨å± (çªå£)ï¼å ¶èªèº«ä¸ç³»åå ç½®çJavaScript ((Array), (Object), (JSON), çç) 乿¯å¦æ¤ï¼è¿äºå¯¹äºå·²å è½½çå 容齿¯ä¸å¯è§çã Electron API å°åªå¨_(é¢å è½½)èæ¬ä¸å¯ç¨ï¼å¨å·²å 载页é¢ä¸ä¸å¯ç¨ã è¿ä¸ªé项åºè¢«ç¨äºå è½½å¯è½ä¸è¢«ä¿¡ä»»çè¿ç¨å å®¹æ¶æ¥ç¡®ä¿å è½½çå å®¹æ æ³ç¯¡æ¹(é¢å è½½)_èæ¬å任使£å¨ä½¿ç¨çElectron apiã 该é项使ç¨çæ¯ä¸Chromeå å®¹èæ¬ç¸åçææ¯ãä½ å¯ä»¥å¨å¼åè å·¥å ·Consoleé项å¡å é¡¶é¨ç»åæ¡ä¸éæ© 'Electron Isolated Context'æ¡ç®æ¥è®¿é®è¿ä¸ªä¸ä¸æ |
webviewTag boolean | æ¯å¦å¯ç¨ (<webview>) tagæ ç¾ãé»è®¤å¼ä¸º (false)ãæ³¨æ: 为 (< webview>) é ç½®ç (preload) èæ¬å¨æ§è¡æ¶å°å¯ç¨èç¹éæ, å æ¤åºç¡®ä¿è¿ç¨æä¸åä¿¡ä»»çå å®¹æ æ³åå»ºæ¶æç (preload) èæ¬ ã å¯ä»¥ä½¿ç¨ webContents ä¸ç (will-attach-webview) äºä»¶å¯¹ (preload) èæ¬è¿è¡å¥ç¦», å¹¶éªè¯ææ´æ¹ (<webview>) çåå§è®¾ç½® |
additionalArguments string[] | strinä¸ä¸ªå°è¢«éå å°å½ååºç¨ç¨åºç渲æå¨è¿ç¨ä¸_(process.argv)_çå符串å表ãå¯ç¨äºå°å°éçæ°æ®ä¼ éå°æ¸²æå¨è¿ç¨é¢å è½½èæ¬ä¸ã |
safeDialogs boolean | æ¯å¦å¯ç¨æµè§å¨æ ·å¼çæç»å¯¹è¯æ¡ä¿æ¤ã é»è®¤å¼ä¸º (false) |
safeDialogsMessage string | 彿ç»å¯¹è¯æ¡ä¿æ¤è¢«è§¦åæ¶æ¾ç¤ºçæ¶æ¯ã å¦ææ²¡æå®ä¹ï¼é£ä¹å°ä½¿ç¨ç¼ºççæ¶æ¯ã注æï¼å½åç¼ºçæ¶æ¯æ¯è±æï¼å¹¶æ²¡ææ¬å°å |
disableDialogs boolean | æ¯å¦å®å ¨ç¦ç¨å¯¹è¯æ¡ã è¦ç (safeDialogs)ã é»è®¤å¼ä¸º (false) |
navigateOnDragDrop boolean | å°æä»¶æé¾æ¥ææ¾å°é¡µé¢ä¸æ¶æ¯å¦è§¦å页é¢è·³è½¬ã é»è®¤å¼ä¸º (false) |
autoplayPolicy string | çªå£ä¸å 容è¦ä½¿ç¨çèªå¨ææ¾çç¥ï¼å¼å¯ä»¥æ¯ (no-user-gesture-required), (user-gesture-required), (document-user-activation-required)ãé»è®¤ä¸º (no-user-gesture-required) |
disableHtmlFullscreenWindowResize boolean | æ¯å¦é»æ¢çªå£å¨è¿å ¥ HTML å ¨å±æ¶è°æ´å¤§å°ãé»è®¤å¼ä¸º (false) |
accessibleTitle string | ä» æä¾ç»å¦å±å¹è¯»åå¨çè¾ å©å·¥å ·çæ¿ä»£æ é¢åç¬¦ä¸²ãæ¤å符串ä¸ç´æ¥å¯¹ç¨æ·å¯è§ |
spellcheck boolean | æ¯å¦å¯ç¨å ç½®æ¼åæ£æ¥å¨ã é»è®¤å¼ä¸º (true) |
enableWebSQL boolean | æ¯å¦å¯ç¨ WebSQL apiã é»è®¤å¼ä¸º (true) |
v8CacheOptions string | å¼ºå¶ blink ä½¿ç¨ v8 代ç ç¼åçç¥ã 坿¥åçå¼ä¸ºï¼ |
v8CacheOptions.none | ç¦ç¨ä»£ç ç¼å |
v8CacheOptions.code | åºäºå¯åå¼ä»£ç ç¼å |
v8CacheOptions.bypassHeatCheck | ç»è¿å¯åå¼ä»£ç ç¼åï¼ä½ä½¿ç¨æç¼è¯ã |
v8CacheOptions.bypassHeatCheckAndEagerCompile | ä¸ä¸é¢ç¸åï¼é¤äºç¼è¯æ¯åæ¶çã é»è®¤çç¥æ¯ (code) |
enablePreferredSizeMode boolean | æ¯å¦å¯ç¨é¦é大尿¨¡å¼ã é¦é大尿¯å å«ææ¡£å¸å±æéçæå°å¤§å°--æ éæ»å¨ã å¯ç¨è¯¥å±æ§å°å¯¼è´å¨é¦é大å°åçååæ¶ï¼å¨ (WebContents) ä¸è§¦å (preferred-size-changed) äºä»¶ãé»è®¤å¼ä¸º (false) |
titleBarOverlay Object/Boolean | å½å¨ macOS ä½¿ç¨æ æ¡çªå£ç»å (win.setWindowButtonVisibility(true)) æä½¿ç¨ (titleBarStyle) 以便æ åçªå£æ§å¶ (å¨ macOS为 "traffic lights") å¯è§ï¼æ¤å±æ§å°å¯ç¨ Window Controls Overlay JavaScript APIs å CSS Environment Variablesãæå® (true) å°å¯¼è´è¦çé»è®¤ç³»ç»é¢è²ã é»è®¤å¼ä¸º (false) |
color String (win) | å¯ç¨çªå£æ§å¶æ¶è¦çé¢ç CSS é¢è² é»è®¤æ¯ç³»ç»é¢è² |
symbolColor String (win) | å¯ç¨æ¶çªå£æ§å¶ä¸ç¬¦å·ç CSS é¢è² é»è®¤æ¯ç³»ç»é¢è² |
height Integer (win/mac) | æ 颿 å Window Controls Overlayï¼ä»¥åç´ ä¸ºåä½ã é»è®¤å¼ä¸ºç³»ç»é«åº¦ |
const { BrowserWindow } = require('electron')
const child = new BrowserWindow({ modal: true, show: false })
child.loadURL('https://github.com')
child.once('ready-to-show', () => {
child.show()
})
| :- | :- |
|---|---|
page-title-updated | ææ¡£æ´æ¹æ 颿¶è§¦å # |
close | å¨çªå£è¦å ³éçæ¶å触å # |
closed | å¨çªå£å ³éæ¶è§¦å # |
session-end (win) | å 为强å¶å ³æº/éå¯/ä¼è¯æ³¨éè导è´çªå£ä¼è¯ç»ææ¶è§¦å # |
unresponsive | ç½é¡µå徿ªååºæ¶è§¦å # |
responsive | æªååºç页é¢åæååºæ¶è§¦å # |
blur | å½çªå£å¤±å»ç¦ç¹æ¶è§¦å # |
focus | å½çªå£è·å¾ç¦ç¹æ¶è§¦å # |
show | å½çªå£æ¾ç¤ºæ¶è§¦å # |
hide | å½çªå£éèæ¶è§¦å # |
ready-to-show | å½é¡µé¢å·²ç»æ¸²æå®æ(è¿æ²¡ææ¾ç¤º)çªå£å¯ä»¥è¢«æ¾ç¤ºæ¶è§¦å# |
maximize | çªå£æå¤§åæ¶è§¦å # |
unmaximize | å½çªå£ä»æå¤§åç¶æéåºæ¶è§¦å # |
minimize | çªå£æå°åæ¶è§¦å # |
restore | å½çªå£ä»æå°åç¶ææ¢å¤æ¶è§¦å # |
will-resize (mac/win) | è°æ´çªå£å¤§å°å触å # |
resize | è°æ´çªå£å¤§å°å触å # |
resized (mac/win) | å½çªå£å®æè°æ´å¤§å°å触å䏿¬¡ # |
will-move (mac/win) | çªå£ç§»å¨å触å # |
move | çªå£ç§»å¨å°æ°ä½ç½®æ¶è§¦å # |
moved (mac/win) | å½çªå£ç§»å¨å°æ°ä½ç½®æ¶è§¦å䏿¬¡ # |
enter-full-screen | çªå£è¿å ¥å ¨å±ç¶ææ¶è§¦å # |
leave-full-screen | çªå£ç¦»å¼å ¨å±ç¶ææ¶è§¦å # |
enter-html-full-screen | çªå£è¿å ¥ç±HTML API 触åçå ¨å±ç¶ææ¶è§¦å # |
leave-html-full-screen | çªå£ç¦»å¼ç±HTML API触åçå ¨å±ç¶ææ¶è§¦å # |
always-on-top-changed | 设置æåæ¶è®¾ç½®çªå£æ»æ¯å¨å ¶ä»çªå£ç顶鍿¾ç¤ºæ¶è§¦å # |
app-command | 请æ±ä¸ä¸ªåºç¨ç¨åºå½ä»¤æ¶è§¦å # |
scroll-touch-begin (mac) | æ»è½®äºä»¶é¶æ®µå¼å§æ¶è§¦å # |
scroll-touch-end (mac) | æ»è½®äºä»¶é¶æ®µç»ææ¶è§¦å # |
scroll-touch-edge (mac) | æ»è½®äºä»¶é¶æ®µå°è¾¾å ç´ è¾¹ç¼æ¶è§¦å # |
swipe | 䏿æ»å¨æ¶è§¦å # |
rotate-gesture (mac) | å¨è§¦æ§æ¿æè½¬æå¿ä¸è§¦å # |
sheet-begin (mac) | çªå£æå¼sheet(å·¥ä½è¡¨) æ¶è§¦å # |
sheet-end (mac) | çªå£å ³ésheet(å·¥ä½è¡¨) æ¶è§¦å # |
new-window-for-tab (mac) | å½ç¹å»äºç³»ç»çæ°æ ç¾æé®æ¶è§¦å # |
system-context-menu (win) | å½ç³»ç»ä¸ä¸æèåå¨çªå£ä¸è§¦åæ¶è§¦å # |
| :- | :- |
|---|---|
win.destroy() | 强å¶å ³éçªå£ # |
win.close() | å°è¯å ³éçªå£ # |
win.focus() | èç¦äºçªå£ # |
win.blur() | åæ¶çªå£çèç¦ # |
win.isFocused() | 夿çªå£æ¯å¦èç¦ # |
win.isDestroyed() | 夿çªå£æ¯å¦è¢«éæ¯ # |
win.show() | æ¾ç¤ºå¹¶èç¦äºçªå£ # |
win.showInactive() | æ¾ç¤ºä½ä¸èç¦äºçªå£ # |
win.hide() | éèçªå£ # |
win.isVisible() | 夿çªå£æ¯å¦å¯è§ # |
win.isModal() | 夿æ¯å¦ä¸ºæ¨¡æçªå£ # |
win.maximize() | æå¤§åçªå£ # |
win.unmaximize() | åæ¶çªå£æå¤§å # |
win.isMaximized() | 夿çªå£æ¯å¦æå¤§å # |
win.minimize() | æå°åçªå£ # |
win.restore() | çªå£æå°åç¶ææ¢å¤å°ä»¥åçç¶æ # |
win.isMinimized() | 夿çªå£æ¯å¦æå°å # |
win.setFullScreen(flag) | 设置çªå£æ¯å¦åºå¤äºå ¨å±æ¨¡å¼ # |
win.isFullScreen() | çªå£å½åæ¯å¦å·²å ¨å± # |
win.setSimpleFullScreen(flag) (mac) | è¿å ¥æç¦»å¼ç®åçå ¨å±æ¨¡å¼ # |
win.isSimpleFullScreen() | çªå£æ¯å¦ä¸ºç®åå ¨å±æ¨¡å¼(pre-Lion) # |
win.isNormal() | çªå£æ¯å¦å¤äºæ£å¸¸ç¶æï¼æªæå¤§åï¼æªæå°åï¼ä¸å¨å ¨å±æ¨¡å¼ä¸ï¼ # |
win.setAspectRatio(aspectRatio[, extraSize]) | 为å 容è§å¾ä¿æç宽髿¯ # |
win.setBackgroundColor(backgroundColor) | é¢è²ï¼æ ¼å¼ä¸º Hexï¼RGBï¼RGBAï¼HSLï¼HSLA æ CSS å½åé¢è² # |
win.previewFile(path[, displayName]) (mac) | è¦ç¨ QuickLook é¢è§çæä»¶çç»å¯¹è·¯å¾ # |
win.closeFilePreview() (mac) | å ³éå½åæå¼ç # |
win.setBounds(bounds[, animate]) | éç½®çªå£ï¼å¹¶ä¸ç§»å¨çªå£å°æå®çä½ç½® # |
win.getBounds() | 表示çªå£ç bounds # |
win.getBackgroundColor() | æ ¼å¼è·åçªå£çèæ¯è²ï¼æ ¼å¼ä¸º Hex (#RRGGBB) # |
win.setContentBounds(bounds[, animate]) | è°æ´çªå£çå·¥ä½åº (å¦ç½é¡µ) ç大å°å¹¶å°å ¶ç§»å¨å°ææä¾çè¾¹çã # |
win.getContentBounds() | çªå£å®¢æ·ç«¯åºåç bounds 对象 # |
win.getNormalBounds() | å 嫿£å¸¸ç¶æä¸ççªå£å¤§å° # |
win.setEnabled(enable) | ç¦ç¨æè å¯ç¨çªå£ # |
win.isEnabled() | çªå£æ¯å¦å¯ç¨ # |
win.setSize(width, height[, animate]) | è°æ´çªå£ç width å height # |
win.getSize() | å å«çªå£ç宽度åé«åº¦ # |
win.setContentSize(width, height[, animate]) | å°çªå£çå·¥ä½åº (å¦ç½é¡µ) ç大å°è°æ´ä¸º width å height # |
win.getContentSize() | å å«çªå£ç宽度åé«åº¦ # |
win.setMinimumSize(width, height) | 设置çªå£æå°åç width å height # |
win.getMinimumSize() | å å«çªå£æå°åç宽度åé«åº¦ # |
win.setMaximumSize(width, height) | 设置çªå£æå¤§åç width å height # |
win.getMaximumSize() | å å«çªå£æå¤§åç宽度åé«åº¦ # |
win.setResizable(resizable) | è®¾ç½®ç¨æ·æ¯å¦å¯ä»¥æå¨è°æ´çªå£å¤§å° # |
win.isResizable() | ç¨æ·æ¯å¦å¯ä»¥æå¨è°æ´çªå£å¤§å° # |
win.setMovable(movable) (mac/win) | è®¾ç½®ç¨æ·æ¯å¦å¯ä»¥ç§»å¨çªå£ # |
win.isMovable() (mac/win) | çªå£æ¯å¦å¯ä»¥è¢«ç¨æ·æå¨ï¼å¨ Linux 䏿»æ¯è¿å true # |
win.setMinimizable(minimizable) (mac/win) | è®¾ç½®ç¨æ·æ¯å¦å¯ä»¥æå¨å°çªå£æå°å # |
win.isMinimizable() (mac/win) | ç¨æ·æ¯å¦å¯ä»¥æå¨æå°åçªå£ # |
win.setMaximizable(maximizable) (mac/win) | è®¾ç½®ç¨æ·æ¯å¦å¯ä»¥æå¨æå¤§åçªå£ # |
win.isMaximizable() (mac/win) | çªå£æ¯å¦å¯ä»¥æå¤§å # |
win.setFullScreenable(fullscreenable) | 设置æå¤§å/缩æ¾çªå£æé®æ¯åæ¢å ¨å±æ¨¡å¼è¿æ¯æå¤§åçªå£ # |
win.isFullScreenable() | æå¤§å/缩æ¾çªå£æé®æ¯åæ¢å ¨å±æ¨¡å¼è¿æ¯æå¤§åçªå£ # |
win.setClosable(closable) (mac/win) | è®¾ç½®ç¨æ·æ¯å¦å¯ä»¥æå¨å ³éçªå£ã å¨Linuxä¸ä¸èµ·ä½ç¨ # |
win.isClosable() (mac/win) | çªå£æ¯å¦è¢«ç¨æ·å ³éäº # |
win.setAlwaysOnTop(flag[, level][, relativeLevel]) | 设置çªå£æ¯å¦åºå§ç»æ¾ç¤ºå¨å ¶ä»çªå£çåé¢ # |
win.isAlwaysOnTop() | å½åçªå£æ¯å¦å§ç»å¨å ¶å®çªå£ä¹å # |
win.moveAbove(mediaSourceId) | å°çªå£æz轴顺åºç§»å¨å°æºçªå£åé¢ # |
win.moveTop() | æ 论ç¦ç¹å¦ä½, å°çªå£ç§»è³é¡¶ç«¯(zè½´ä¸ç顺åº) # |
win.center() | å°çªå£ç§»å¨å°å±å¹ä¸å¤® # |
win.setPosition(x, y[, animate]) | å°çªå£ç§»å¨å° x å y # |
win.getPosition() | è¿åä¸ä¸ªå å«å½åçªå£ä½ç½®çæ°ç» # |
win.setTitle(title) | å°åççªå£çæ 颿´æ¹ä¸º title # |
win.getTitle() | ç½é¡µçæ é¢å¯ä»¥ä¸åççªå£çæ é¢ä¸å # |
win.setSheetOffset(offsetY[, offsetX]) (mac/win) | æ¹åmacOSä¸sheetç»ä»¶çéçç¹ï¼é»è®¤æ åµä¸ï¼sheetè´´å¨çªå£è¾¹æ¡æ£ä¸æ¹ # |
win.flashFrame(flag) | å¯å¨æåæ¢éªççªå£, 以å¸å¼ç¨æ·ç注æ # |
win.setSkipTaskbar(skip) (mac/win) | 使çªå£ä¸æ¾ç¤ºå¨ä»»å¡æ ä¸ # |
win.setKiosk(flag) | è¿å ¥æç¦»å¼ kiosk æ¨¡å¼ # |
win.isKiosk() | 夿çªå£æ¯å¦å¤äºkioskæ¨¡å¼ # |
win.isTabletMode() (win) | æ¤ API è¿å çªå£æ¯å¦å¨å¹³æ¿çµè模å¼ä¸ï¼å¹¶ä¸ è°æ´å¤§å° äºä»¶å¯ä»¥ç¨äºçå¬å¯¹å¹³æ¿æ¨¡å¼çæ´æ¹ # |
win.getMediaSourceId() | DesktopCapturerSource ç id æ ¼å¼ççªå£ id # |
win.getNativeWindowHandle() | çªå£çå¹³å°ç¹å®å¥æ # |
win.hookWindowMessage(message, callback) (win) | é©ä½çªå£æ¶æ¯ã 彿¶æ¯å°è¾¾ WndProc æ¶è°ç¨ callback # |
win.isWindowMessageHooked(message) (win) | è¿å boolean - true æfalseï¼å ·ä½åå³äºæ¯å¦é©æäºæ¶æ¯ # |
win.unhookWindowMessage(message) (win) | åæ¶çªå£ä¿¡æ¯çé©å # |
win.unhookAllWindowMessages() (win) | åæ¶ææçªå£ä¿¡æ¯çé©å # |
win.setRepresentedFilename(filename) (mac) | 设置çªå£æä»£è¡¨çæä»¶çè·¯å¾åï¼å¹¶ä¸å°è¿ä¸ªæä»¶ç徿 æ¾å¨çªå£æ 颿 ä¸ # |
win.getRepresentedFilename() (mac) | è·åçªå£å½åæä»¶è·¯å¾ # |
win.setDocumentEdited(edited) (mac) | æç¡®æåºçªå£ææ¡£æ¯å¦å¯ä»¥ç¼è¾ï¼å¦æè®¾ç½®ä¸ºtrueåå°æ 颿 ç徿 åæç°è² # |
win.isDocumentEdited() (mac) | 夿å½åçªå£ææ¡£æ¯å¦å¯ç¼è¾ # |
win.focusOnWebView() | # |
win.blurWebView() | # |
win.capturePage([rect]) | å¨ rect å æè·é¡µé¢çå¿«ç § # |
win.loadURL(url[, options]) | å è½½é¡µé¢ # |
win.loadFile(filePath[, options]) | å è½½é¡µé¢ # |
win.reload() | ä¸ webContents.reload ç¸å # |
win.setMenu(menu) (win/linux) | å° menu 设置为çªå£çèåæ # |
win.removeMenu() (win) | å é¤çªå£çèåæ # |
win.setProgressBar(progress[, options]) | 设置è¿åº¦æ¡çè¿åº¦å¼ # |
win.setOverlayIcon(overlay, description) (win) | 设置è¿åº¦æ¡çè¿åº¦å¼ã ææèå´ä¸º [0, 1.0] # |
win.setHasShadow(hasShadow) | 设置çªå£æ¯å¦æé´å½± # |
win.hasShadow() | 夿çªå£æ¯å¦æé´å½± # |
win.setOpacity(opacity) (win/mac) | 设置çªå£çä¸éæåº¦ã å¨Linuxä¸ä¸èµ·ä½ç¨ã è¶
åºçéçæ°å¼è¢«éå¶å¨ [0, 1] èå´å
# |
win.getOpacity() | ä»äº 0.0 (å®å
¨éæ) å 1.0 (å®å
¨ä¸éæ) ä¹é´ãå¨Linuxä¸ï¼å§ç»è¿å 1 # |
win.setShape(rects) (win/linux) | 对çªå£å½¢ç¶ç设置å³å®äºçªå£å ç³»ç»å 许ç»å¶ä¸ç¨æ·äº¤äºçåºå # |
win.setThumbarButtons(buttons) (win) | å°æå®çä¸ç»æé®æ·»å å°èåæ ç缩å¾å·¥å ·æ ä¸ # |
win.setThumbnailClip(region) (win) | å°çªå£çåºå设置为å¨ä»»å¡æ 䏿¬åå¨çªå£ä¸æ¹æ¶æ¾ç¤ºç缩ç¥å¾å¾å # |
win.setThumbnailToolTip(toolTip) (win) | 设置å¨ä»»å¡æ 䏿¬åå¨çªå£ç¼©ç¥å¾ä¸æ¶æ¾ç¤ºçå·¥å ·æç¤º # |
win.setAppDetails(options) (win) | 设置çªå£ä»»å¡æ æé®ç屿§ # |
win.showDefinitionForSelection() (mac) | å webContents.showDefinitionForSelection() ç¸å # |
win.setIcon(icon) (win/linux) | 设置çªå£å¾æ # |
win.setWindowButtonVisibility(visible) (mac) | 设置æ¯å¦çªå£äº¤éç¯éè¦æ¾ç¤º # |
win.setAutoHideMenuBar(hide) (win/linux) | 设置çªå£èåæ æ¯å¦èªå¨éè # |
win.isMenuBarAutoHide() (win/linux) | 夿çªå£çèåæ æ¯å¦èªå¨éè # |
win.setMenuBarVisibility(visible) (win/linux) | 设置èåæ æ¯å¦å¯è§ # |
win.isMenuBarVisible() (win/linux) | 夿çªå£çèåæ æ¯å¦å¯è§ # |
win.setVisibleOnAllWorkspaces(visible[, options]) (mac/linux) | 设置çªå£æ¯å¦å¨ææå·¥ä½ç©ºé´ä¸å¯è§ # |
win.isVisibleOnAllWorkspaces() (mac/linux) | 夿çªå£æ¯å¦å¨ææå·¥ä½ç©ºé´ä¸å¯è§ # |
win.setIgnoreMouseEvents(ignore[, options]) | 忽ç¥çªå£å çææé¼ æ äºä»¶ # |
win.setContentProtection(enable) (mac/linux) | 鲿¢çªå£å å®¹è¢«å ¶ä»åºç¨æè· # |
win.setFocusable(focusable) (mac/linux) | 设置çªå£æ¯å¦å¯èç¦ # |
win.isFocusable() (mac/linux) | è¿åå½åçªå£æ¯å¦å¯ä»¥ä½ä¸ºç¦ç¹è¢«éä¸ # |
win.setParentWindow(parent) | 设置 parent 为å½åçªå£çç¶çªå£ # |
win.getParentWindow() | è¿å BrowserWindow/null - å¦ææ²¡æç¶çªå£å为 null # |
win.getChildWindows() | è¿å BrowserWindow[] - é¦é¡µçåçªå£ # |
win.setAutoHideCursor(autoHide) (mac) | 设置è¾å ¥æ¶æ¯å¦éèå æ # |
win.selectPreviousTab() (mac) | å½å¯ç¨æ¬å°é项å¡ï¼å¹¶ä¸çªå£ä¸æå¦ä¸ä¸ªæ ç¾æ¶ï¼éæ©ä¸ä¸ä¸ªéé¡¹å¡ # |
win.selectNextTab() (mac) | å½å¯ç¨æ¬å°é项å¡ï¼å¹¶ä¸çªå£ä¸æå¦ä¸ä¸ªæ ç¾æ¶ï¼éæ©ä¸ä¸ä¸ªéé¡¹å¡ # |
win.mergeAllWindows() (mac) | å½å¯ç¨æ¬å°é项å¡å¹¶ä¸åå¨å¤ä¸ªæå¼çªå£æ¶ï¼å°ææçªå£åå¹¶å°ä¸ä¸ªå¸¦æå¤ä¸ªé项å¡ççªå£ä¸ # |
win.moveTabToNewWindow() (mac) | 妿å¯ç¨äºæ¬æºé项å¡å¹¶ä¸å½åçªå£ä¸æå¤ä¸ªé项å¡ï¼åå°å½åé项å¡ç§»å¨å°æ°çªå£ä¸ # |
win.toggleTabBar() (mac) | 妿å¯ç¨äºæ¬æºé项å¡å¹¶ä¸å½åçªå£ä¸åªæä¸ä¸ªé项å¡ï¼å忢é项塿 æ¯å¦å¯è§ # |
win.addTabbedWindow(browserWindow) (mac) | å¨è¯¥çªå£ä¸æ·»å ä¸ä¸ªçªå£ä½ä¸ºé项å¡ï¼ä½äºçªå£å®ä¾çé项å¡ä¹å # |
win.setVibrancy(type) (mac) | 卿µè§å¨çªå£ä¸æ·»å ä¸ä¸ªå¨æç¹æã ä¼ é null æç©ºå符串å°ä¼ç§»é¤çªå£ä¸çå¨æææ # |
win.setTrafficLightPosition(position) (mac) | 卿 æ¡çªå£ä¸è®¾ç½®èªå®ä¹æ§å¶æé®çä½ç½® # |
win.getTrafficLightPosition() (mac) | 卿 æ¡çªå£ä¸èªå®ä¹æ§å¶æé®çä½ç½® # |
win.setTouchBar(touchBar) (mac) | 设置çªå£çè§¦æ¸æ¡å¸å± 设置为 null æundefinedå°æ¸ é¤è§¦æ¸æ¡ # |
win.setBrowserView(browserView) (å®éª) | # |
win.getBrowserView() (å®éªåè½) | # |
win.addBrowserView(browserView) (å®éªåè½) | # |
win.removeBrowserView(browserView) (å®éªåè½) | # |
win.setTopBrowserView(browserView) (å®éªåè½) | # |
win.getBrowserViews() (å®éªåè½) | # |
win.setTitleBarOverlay(options) (win) | å¨å·²å¼å¯ Window Controls Overlay ççªå£ä¸ï¼æ¤æ¹æ³å°æ´æ°æ 颿 å å å±çæ ·å¼ # |
| :- | :- |
|---|---|
BrowserWindow.getAllWindows() | æææå¼ççªå£çæ°ç» # |
BrowserWindow.getFocusedWindow() | å½åè·å¾ç¦ç¹ççªå£ # |
BrowserWindow.fromWebContents(webContents) | æ¥æç»å® webContents çªå£ # |
BrowserWindow.fromBrowserView(browserView) | æ¥æç»å® browserView çªå£ # |
BrowserWindow.fromId(id) | 带æç»å® id ççªå£ # |
const { BrowserWindow } = require('electron')
// æ¬ä¾ä¸ `win` æ¯æä»¬çå®ä¾
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
| :- | :- |
|---|---|
win.webContents | æ¤çªå£æ¥æç WebContents 对象 # |
win.id | 代表äºçªå£çå¯ä¸ID # |
win.autoHideMenuBar | å³å®çªå£èåæ æ¯å¦èªå¨éè # |
win.simpleFullScreen | å³å®çªå£æ¯å¦å¤äºç®å(pre-Lion) å ¨å±æ¨¡å¼ # |
win.fullScreen | å³å®çªå£æ¯å¦å¤äºå ¨å±æ¨¡å¼ # |
win.focusable | ç¡®å®çªå£æ¯å¦å¯ä½ä¸ºç¦ç¹è¢«éä¸ç屿§ # |
win.visibleOnAllWorkspaces | å³å®çªå£æ¯å¦å¨ææå·¥ä½åºä¸å¯è§ # |
win.shadow | å³å®çªå£æ¯å¦æ¾ç¤ºé´å½± # |
win.menuBarVisible | å³å®èåæ æ¯å¦å¯è§ # |
win.kiosk | å³å®çªå£æ¯å¦å¤äºkioskæ¨¡å¼ # |
win.documentEdited | ææçªå£ææ¡£æ¯å¦å·²è¢«ç¼è¾ # |
win.representedFilename | ç¡®å®çªå£ä»£è¡¨çæä»¶çè·¯å¾å # |
win.title | ç¨äºç¡®å®åççªå£çæ é¢ # |
win.minimizable | å³å®çªå£æ¯å¦å¯è¢«ç¨æ·æå¨æå°å # |
win.maximizable | å³å®çªå£æ¯å¦å¯è¢«ç¨æ·æå¨æå¤§å # |
win.fullScreenable | å³å®æ¯åæ¢å ¨å±æ¨¡å¼è¿æ¯æå¤§åçªå£ # |
win.resizable | å³å®çªå£æ¯å¦å¯è¢«ç¨æ·æå¨è°æ´å¤§å° # |
win.closable | å³å®çªå£æ¯å¦å¯è¢«ç¨æ·æå¨å ³é # |
win.movable | å³å®çªå£æ¯å¦å¯è¢«ç¨æ·ç§»å¨ # |
win.excludedFromShownWindowsMenu | å³å®çªå£æ¯å¦ä» Windows èåæé¤ # |
win.accessibleTitle | å®ä¹ä¸ä¸ªä» ä¸ºè¾ å©å·¥å ·æä¾çæ¿ä»£æ é¢ # |