返回

如何以实用、现代的方式使用Electron应用程序进行进程间通信?

前端

使用本机文件对话框

第一步:创建一个自定义的本机文件对话框

要创建一个自定义的本机文件对话框,您需要创建一个新的JavaScript文件并将其保存在您的项目目录中。我们将这个文件命名为“dialog.js”。

const { dialog } = require('electron')

// 创建一个新的文件对话框
const fileDialog = dialog.showOpenDialogSync({
  properties: ['openFile']
})

// 如果用户选择了文件,则将其路径打印到控制台
if (fileDialog) {
  console.log(fileDialog[0])
}

第二步:在您的主进程中使用自定义的文件对话框

要在您的主进程中使用自定义的文件对话框,您需要在“main.js”文件中引用“dialog.js”。

const dialog = require('./dialog')

// 创建一个新的文件对话框
const fileDialog = dialog.showOpenDialogSync({
  properties: ['openFile']
})

// 如果用户选择了文件,则将其路径打印到控制台
if (fileDialog) {
  console.log(fileDialog[0])
}

第三步:在您的呈现器进程中使用自定义的文件对话框

要在您的呈现器进程中使用自定义的文件对话框,您需要在“renderer.js”文件中引用“dialog.js”。

const dialog = require('./dialog')

// 创建一个新的文件对话框
const fileDialog = dialog.showOpenDialogSync({
  properties: ['openFile']
})

// 如果用户选择了文件,则将其路径打印到控制台
if (fileDialog) {
  console.log(fileDialog[0])
}

使用帮助进程

第一步:创建一个帮助进程

要创建一个帮助进程,您需要创建一个新的JavaScript文件并将其保存在您的项目目录中。我们将这个文件命名为“helper.js”。

const { ipcMain, dialog } = require('electron')

// 监听来自呈现器进程的消息
ipcMain.on('open-file-dialog', (event) => {
  // 创建一个新的文件对话框
  const fileDialog = dialog.showOpenDialogSync({
    properties: ['openFile']
  })

  // 如果用户选择了文件,则将其路径发送回呈现器进程
  if (fileDialog) {
    event.sender.send('selected-file', fileDialog[0])
  }
})

第二步:在您的主进程中使用帮助进程

要在您的主进程中使用帮助进程,您需要在“main.js”文件中引用“helper.js”。

const helper = require('./helper')

// 创建一个新的帮助进程
const helperProcess = new BrowserWindow({
  show: false
})

// 将帮助进程加载到一个隐藏的窗口中
helperProcess.loadURL('file://' + __dirname + '/helper.html')

// 监听来自帮助进程的消息
helperProcess.webContents.on('did-finish-load', () => {
  // 将帮助进程暴露给呈现器进程
  global.helperProcess = helperProcess
})

第三步:在您的呈现器进程中使用帮助进程

要在您的呈现器进程中使用帮助进程,您需要在“renderer.js”文件中引用“helper.js”。

const helper = require('./helper')

// 向帮助进程发送一个消息,要求它打开一个文件对话框
helperProcess.webContents.send('open-file-dialog')

// 监听来自帮助进程的消息
helperProcess.webContents.on('selected-file', (event, file) => {
  // 如果用户选择了文件,则将其路径打印到控制台
  console.log(file)
})

结论

在本教程中,我们向您展示了如何在Electron应用程序中使用本机文件对话框和帮助进程进行进程间通信。我们向您展示了如何创建和使用一个自定义的本机文件对话框,以及如何从呈现器进程向主进程发送消息。您还学习了如何创建和使用一个帮助进程来管理文件操作。

我希望本教程对您有所帮助。如果您有任何问题,请随时提出。