Référence rapide de l'API Electron et modèle de configuration
Référence rapide de l'API du processus principal
| Module |
Description de la fonction |
Méthodes courantes |
Description |
| app |
Contrôler le cycle de vie de l'application |
app.on('ready')、app.quit()、app.getPath('userData') |
Gérer le démarrage, l'arrêt, les chemins, l'enregistrement de protocole, etc. de l'application |
| BrowserWindow |
Créer et gérer des fenêtres |
new BrowserWindow(options)、win.loadFile()、win.loadURL()、win.webContents |
Le conteneur principal de l'interface utilisateur d'une application Electron, qui exécute le processus de rendu à l'intérieur |
| ipcMain |
Interface de communication du processus principal |
ipcMain.on(channel, callback)、ipcMain.handle(channel, handler) |
Écouter les messages ou les requêtes d'appel envoyés par le processus de rendu |
| Menu |
Créer un menu d'application |
Menu.buildFromTemplate(menuTemplate)、Menu.setApplicationMenu(menu) |
Éléments de menu personnalisables, raccourcis et menus contextuels |
| Zone de notification |
Gestion de la zone de notification |
new Tray(icon)、tray.setToolTip()、tray.setContextMenu(menu) |
Afficher une icône dans la barre des tâches, couramment utilisée pour les applications résidentes en arrière-plan |
| Boîte de dialogue |
Boîtes de dialogue natives du système |
dialog.showOpenDialog()、dialog.showSaveDialog()、dialog.showMessageBox() |
Interactions système telles que la sélection de fichiers, l'enregistrement et les invites de message |
| Notification |
Notification système |
new Notification({ title, body }).show() |
Envoyer des notifications système natives, avec des rappels de clic optionnels |
| Tri de Shell |
Appeler des ressources système externes |
shell.openExternal(url)、shell.showItemInFolder(path) |
Ouvrir des pages web externes, des dossiers et des fichiers exécutables |
| Protocol |
Enregistrer un protocole personnalisé |
protocol.registerFileProtocol()、protocol.handle() |
Pour le chargement de ressources personnalisées ou les liens profonds |
| Session |
Gérer les sessions, le cache et les cookies |
session.defaultSession.cookies.get()、clearCache() |
Contrôle de bas niveau sur les données de navigation et les requêtes |
| Net |
Requêtes réseau HTTP/HTTPS natives |
net.request(options) |
Un module réseau de plus bas niveau, avec de meilleures performances que...fetch |
| PowerMonitor |
Surveiller l'état d'alimentation du système |
powerMonitor.on('suspend')、on('resume') |
Écouter la mise en veille, le réveil, le verrouillage de l'écran et d'autres états de l'ordinateur |
| Clipboard |
Opérations du presse-papiers |
clipboard.readText()、clipboard.writeText() |
Prend en charge le copier-coller multiplateforme de texte, d'images, etc. |
| GlobalShortcut |
Enregistrer des raccourcis globaux |
globalShortcut.register('CommandOrControl+X', fn) |
Raccourcis clavier fonctionnant dans toutes les fenêtres et en arrière-plan |
Référence rapide de l'API du processus de rendu
| Module |
Description de la fonction |
Méthodes courantes |
Description |
| ipcRenderer |
Communiquer avec le processus principal |
ipcRenderer.send()、ipcRenderer.invoke()、ipcRenderer.on() |
Utilisé par le processus de rendu pour envoyer, recevoir et invoquer des événements du processus principal |
| webFrame |
Contrôler le contenu de la page actuelle |
webFrame.setZoomFactor()、webFrame.insertCSS() |
Modifier dynamiquement le zoom et les styles de la page |
| contextBridge |
Exposer des API en toute sécurité |
contextBridge.exposeInMainWorld('api', {...}) |
Lors de l'activationcontextIsolationLors d'une interaction sécurisée avec le processus principal |
| desktopCapturer |
Capturer le contenu de l'écran |
desktopCapturer.getSources({ types: ['window', 'screen'] }) |
Pour les captures d'écran ou les fonctionnalités d'enregistrement d'écran |
| Notification |
API Notifications |
new Notification('标题', { body: '内容' }) |
Envoyer des notifications à l'aide de l'API Notifications standard du navigateur |
| Clipboard |
Opérations du presse-papiers |
navigator.clipboard.readText() |
Peut accéder au presse-papiers du système (certaines fonctionnalités sont limitées) |
| Stockage Web / IndexedDB |
Stockage local |
localStorage.setItem()、indexedDB.open() |
Enregistrer des données légères ou structurées |
| Fetch / Axios |
Requête réseau |
fetch(url)、axios.get() |
Pour accéder aux API distantes et charger des ressources |
| DOM / Window |
Contrôle de page |
document.querySelector()、window.open() |
Toutes les API Web sont disponibles |
Référence rapide des modules utilitaires courants
| Module |
Fonctionnalités principales |
Exemple |
| fs |
Opérations sur les fichiers |
fs.readFileSync(path)、fs.writeFile(path, data) |
| path |
Path join |
path.join(__dirname, 'index.html') |
| os |
Informations système |
os.platform()、os.homedir() |
| child_process |
Exécuter un processus enfant |
exec('ls', callback) |
| electron-store |
Configuration persistante |
store.set('key', value)、store.get('key') |
| sqlite3 / better-sqlite3 |
Base de données locale |
db.prepare('SELECT * FROM notes').all() |
| axios / node-fetch |
Requête réseau |
axios.post(url, data) |
| node-gyp |
Compilation de modules natifs |
node-gyp rebuild |
Modèles et instructions pour les fichiers de configuration
Modèle et instructions pour package.json
{
"name": "my-electron-app",
"version": "1.0.0",
"description": "示例 Electron 应用",
"main": "main.js",
"scripts": {
"start": "electron .",
"pack": "electron-builder --dir",
"dist": "electron-builder"
},
"devDependencies": {
"electron": "^33.0.0",
"electron-builder": "^24.6.0"
},
"build": {
"appId": "com.example.myelectronapp",
"productName": "MyElectronApp",
"directories": {
"output": "dist"
},
"files": [
"main.js",
"preload.js",
"renderer/**/*"
],
"win": {
"target": "nsis",
"icon": "assets/icon.ico"
},
"mac": {
"category": "public.app-category.productivity",
"icon": "assets/icon.icns"
},
"linux": {
"target": "AppImage",
"icon": "assets/"
}
}
}
Description:
| Fields |
Signification |
| name / version / description |
Nom de l'application, numéro de version et informations de description |
| main |
Fichier d'entrée du processus principal (obligatoire) |
| scripts |
Définir les scripts de commandes,npm startStart,npm run distPack |
| devDependencies |
Dépendances de développement (Electron, outils d'empaquetage, etc.) |
| build |
electron-builderÉlément de configuration |
| appId |
ID d'application unique, utilisé pour la signature et l'identification des mises à jour |
| productName |
Nom de l'application affiché après l'empaquetage |
| directories.output |
Chemin de sortie de l'empaquetage |
| files |
Spécifiez les fichiers et répertoires à empaqueter dans l'application |
| win/mac/linux |
Configuration d'empaquetage indépendante pour chaque plateforme (icônes, formats cibles) |
Modèle et instructions pour electron-builder.yml
appId: com.example.myelectronapp
productName: MyElectronApp
directories:
output: dist
files:
- "main.js"
- "preload.js"
- "renderer/**/*"
win:
target: nsis
icon: assets/icon.ico
mac:
target: dmg
icon: assets/icon.icns
linux:
target: AppImage
icon: assets/
publish:
provider: github
repo: my-electron-app
owner: username
Description:
| Élément de configuration |
Description |
| appId / productName |
Identifiant et nom uniques de l'application |
| directories.output |
Répertoire de sortie de l'empaquetage |
| files |
Liste des fichiers empaquetés (prend en charge les caractères génériques) |
| win / mac / linux |
Cibles de compilation et configurations d'icônes pour différents systèmes |
| publish |
Configuration de la source de publication pour les mises à jour automatiques (ex. GitHub Releases) |
Modèle et explication de tsconfig.json TypeScript
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"outDir": "./dist",
"rootDir": "./src",
"esModuleInterop": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"skipLibCheck": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
Description:
| Options |
Signification |
| target |
Version JavaScript de la cible de compilation |
| module |
Système de modules, généralement utilisé par le processus principal d'Electroncommonjs |
| outDir / rootDir |
Répertoires de sortie et sources |
| strict |
Activer la vérification stricte des types |
| esModuleInterop |
Autoriser les imports par défaut de modules non ES |
| resolveJsonModule |
Prise en charge de l'importation de fichiers JSON |
| skipLibCheck |
Ignorer la vérification des fichiers de déclaration pour accélérer la compilation |
autres extensions