Electron API-Kurzreferenz und Konfigurationsvorlage


Kurzreferenz zur Hauptprozess-API

Modul Funktionsbeschreibung Häufige Methoden Beschreibung
app Anwendungslebenszyklus steuern app.on('ready')、app.quit()、app.getPath('userData') App-Start, Beenden, Pfade, Protokollregistrierung usw. verwalten.
BrowserWindow Fenster erstellen und verwalten new BrowserWindow(options)、win.loadFile()、win.loadURL()、win.webContents Der Haupt-UI-Container einer Electron-App, in dem der Renderer-Prozess läuft
ipcMain Kommunikationsschnittstelle des Hauptprozesses ipcMain.on(channel, callback)、ipcMain.handle(channel, handler) Auf Nachrichten oder Aufrufanfragen lauschen, die vom Renderer-Prozess gesendet werden
Menü Anwendungsmenü erstellen Menu.buildFromTemplate(menuTemplate)、Menu.setApplicationMenu(menu) Anpassbare Menüeinträge, Tastenkürzel und Kontextmenüs
Tray System-Tray-Verwaltung new Tray(icon)、tray.setToolTip()、tray.setContextMenu(menu) Ein Symbol in der Taskleiste anzeigen, wird häufig für im Hintergrund laufende Anwendungen verwendet
Dialog Systemeigene Dialoge dialog.showOpenDialog()、dialog.showSaveDialog()、dialog.showMessageBox() Systeminteraktionen wie Datei-, Speicher- und Nachrichtenaufforderungen
Benachrichtigung Systembenachrichtigung new Notification({ title, body }).show() Native Systembenachrichtigungen senden, mit optionalen Klick-Callbacks
Shell Externe Systemressourcen aufrufen shell.openExternal(url)、shell.showItemInFolder(path) Externe Webseiten, Ordner und ausführbare Dateien öffnen
Protokoll Benutzerdefiniertes Protokoll registrieren protocol.registerFileProtocol()、protocol.handle() Für benutzerdefiniertes Laden von Ressourcen oder Deep-Links
Sitzung Sitzungen, Cache und Cookies verwalten session.defaultSession.cookies.get()、clearCache() Low-Level-Kontrolle über Browserdaten und -anfragen
Netz Native HTTP/HTTPS-Netzwerkanfragen net.request(options) Ein Netzwerkmodul auf niedrigerer Ebene mit besserer Leistung als...fetch
PowerMonitor System-Energiestatus überwachen powerMonitor.on('suspend')、on('resume') Auf Ruhezustand, Aufwachen, Sperrbildschirm und andere Zustände des Computers lauschen
Zwischenablage Zwischenablage-Operationen clipboard.readText()、clipboard.writeText() Unterstützt plattformübergreifendes Kopieren und Einfügen von Text, Bildern usw.
GlobalShortcut Globale Tastenkürzel registrieren globalShortcut.register('CommandOrControl+X', fn) Tastaturkürzel, die fensterübergreifend und im Hintergrund funktionieren

Kurzreferenz zur Renderer-Prozess-API

Modul Funktionsbeschreibung Häufige Methoden Beschreibung
ipcRenderer Mit dem Hauptprozess kommunizieren ipcRenderer.send()、ipcRenderer.invoke()、ipcRenderer.on() Wird vom Renderer-Prozess verwendet, um Ereignisse des Hauptprozesses zu senden, zu empfangen und aufzurufen
webFrame Inhalt der aktuellen Seite steuern webFrame.setZoomFactor()、webFrame.insertCSS() Seitenzoom und Stile dynamisch ändern
contextBridge APIs sicher bereitstellen contextBridge.exposeInMainWorld('api', {...}) Beim AktivierencontextIsolationBei sicherer Interaktion mit dem Hauptprozess
desktopCapturer Bildschirminhalt aufnehmen desktopCapturer.getSources({ types: ['window', 'screen'] }) Für Screenshot- oder Bildschirmaufnahmefunktionen
Benachrichtigung Notification API new Notification('标题', { body: '内容' }) Benachrichtigungen mit der browserstandardkonformen Notification API senden
Zwischenablage Zwischenablage-Operationen navigator.clipboard.readText() Kann auf die Systemzwischenablage zugreifen (einige Funktionen sind eingeschränkt)
Web Storage / IndexedDB Local Storage localStorage.setItem()、indexedDB.open() Leichtgewichtige oder strukturierte Daten speichern
Fetch / Axios Netzwerkanfrage fetch(url)、axios.get() für den Zugriff auf entfernte APIs und das Laden von Ressourcen
DOM / Window Seitensteuerung document.querySelector()、window.open() Alle Web-APIs sind verfügbar

Kurzreferenz für gängige Hilfsmodule

Modul Hauptfunktionen Beispiel
fs Dateioperationen fs.readFileSync(path)、fs.writeFile(path, data)
path Pfad zusammenfügen path.join(__dirname, 'index.html')
os Systeminformationen os.platform()、os.homedir()
child_process Untergeordneten Prozess ausführen exec('ls', callback)
electron-store Persistente Konfiguration store.set('key', value)、store.get('key')
sqlite3 / better-sqlite3 Lokale Datenbank db.prepare('SELECT * FROM notes').all()
axios / node-fetch Netzwerkanfrage axios.post(url, data)
node-gyp Kompilierung nativer Module node-gyp rebuild

Vorlagen und Anweisungen für Konfigurationsdateien

package.json-Vorlage und Anweisungen

{
  "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/"
    }
  }
}

Beschreibung:

Fields Bedeutung
name / version / description App-Name, Versionsnummer und Beschreibungsinformationen
main Einstiegsdatei des Hauptprozesses (erforderlich)
scripts Befehlsskripte definieren,npm startStart,npm run distPack
devDependencies Entwicklungsabhängigkeiten (Electron, Paketierungstools usw.)
build electron-builderKonfigurationselement
appId Eindeutige App-ID, verwendet für Signierung und Update-Identifikation
productName App-Name, der nach der Paketierung angezeigt wird
directories.output Ausgabepfad der Paketierung
files Dateien und Verzeichnisse angeben, die in die Anwendung verpackt werden sollen
win/mac/linux Unabhängige Paketierungskonfiguration für jede Plattform (Icons, Zielformate)

electron-builder.yml-Vorlage und Anweisungen

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

Beschreibung:

Konfigurationselement Beschreibung
appId / productName Eindeutige App-Kennung und Name
directories.output Ausgabeverzeichnis für die Paketierung
files Liste der gepackten Dateien (unterstützt Wildcards)
win / mac / linux Build-Ziele und Icon-Konfigurationen für verschiedene Systeme
publish Konfiguration der Release-Quelle für Auto-Updates (z. B. GitHub Releases)

TypeScript tsconfig.json-Vorlage und Erklärung

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "strict": true,
    "outDir": "./dist",
    "rootDir": "./src",
    "esModuleInterop": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

Beschreibung:

Optionen Bedeutung
target Kompilierungsziel JavaScript-Version
module Modulsystem, wird im Allgemeinen vom Electron-Hauptprozess verwendetcommonjs
outDir / rootDir Ausgabe- und Quellverzeichnisse
strict Strikte Typprüfung aktivieren
esModuleInterop Default-Importe von Nicht-ES-Modulen zulassen
resolveJsonModule Unterstützung für den Import von JSON-Dateien
skipLibCheck Deklarationsdatei-Prüfungen überspringen, um die Kompilierung zu beschleunigen
Weitere Erweiterungen