Dialog Example - Electron Typing CST Test
Loading…
Dialog Example — Electron Code
Uses Electron's dialog module to open a file picker dialog.
// main.js
const { app, BrowserWindow, dialog, ipcMain } = require('electron');
function createWindow() {
const win = new BrowserWindow({ webPreferences: { nodeIntegration: true, contextIsolation: false } });
win.loadFile('index.html');
}
ipcMain.handle('open-file', async () => {
const result = await dialog.showOpenDialog({ properties: ['openFile'] });
return result.filePaths;
});
app.whenReady().then(createWindow);
// index.html
<!DOCTYPE html>
<html>
<body>
<button id='openBtn'>Open File</button>
<ul id='files'></ul>
<script>
const { ipcRenderer } = require('electron');
document.getElementById('openBtn').addEventListener('click', async () => {
const files = await ipcRenderer.invoke('open-file');
document.getElementById('files').innerHTML = files.map(f => `<li>${f}</li>`).join('');
});
</script>
</body>
</html>Electron Language Guide
Electron is an open-source framework for building cross-platform desktop applications using web technologies (HTML, CSS, JS) with Node.js integration and Chromium-based rendering. It allows developers to create desktop apps for Windows, macOS, and Linux with a single codebase.
Primary Use Cases
- ▸Cross-platform desktop apps for Windows, macOS, and Linux
- ▸Rapid development using web technologies
- ▸Internal enterprise tools
- ▸Consumer desktop apps (Slack, VS Code, Discord)
- ▸Apps requiring integration with Node.js modules
Notable Features
- ▸Cross-platform support with a single codebase
- ▸Full access to Node.js APIs
- ▸Chromium-based rendering for web-like UI
- ▸Automatic updates via electron-updater
- ▸Extensive ecosystem of plugins and libraries
Origin & Creator
Created by GitHub in 2013 (originally as Atom Shell) to power the Atom text editor, Electron has grown into a popular framework for desktop apps.
Industrial Note
Best suited for cross-platform desktop apps where rapid development with web technologies is prioritized over binary size or raw performance.