main.js 749 B

123456789101112131415161718192021222324252627282930
  1. const { app, BrowserWindow, ipcMain, dialog } = require('electron/main')
  2. const path = require('node:path')
  3. async function handleFileOpen () {
  4. const { canceled, filePaths } = await dialog.showOpenDialog()
  5. if (!canceled) {
  6. return filePaths[0]
  7. }
  8. }
  9. function createWindow () {
  10. const mainWindow = new BrowserWindow({
  11. webPreferences: {
  12. preload: path.join(__dirname, 'preload.js')
  13. }
  14. })
  15. mainWindow.loadFile('index.html')
  16. }
  17. app.whenReady().then(() => {
  18. ipcMain.handle('dialog:openFile', handleFileOpen)
  19. createWindow()
  20. app.on('activate', function () {
  21. if (BrowserWindow.getAllWindows().length === 0) createWindow()
  22. })
  23. })
  24. app.on('window-all-closed', function () {
  25. if (process.platform !== 'darwin') app.quit()
  26. })