在Electron项目中安装了node-machine-id模块

代码片段
1 行
npm install node-machine-id

在Electron的主进程中,
使用node-machine-id模块获取机器码并通过contextBridge传递给渲染进程:

然后,在Electron主进程的同级目录下创建preload.js文件,
用于在渲染进程中暴露machineIdSync函数:

GDScript3
8 行
// preload.js
const { contextBridge } = require('electron');
const { machineIdSync } = require('node-machine-id');

// 使用contextBridge安全地暴露machineIdSync函数给渲染进程
contextBridge.exposeInMainWorld('myElectronAPI', {
  machineIdSync: machineIdSync,
});

在Vue.js应用中,
使用window.myElectronAPI.machineIdSync来获取机器码:

GDScript3
4 行
// 在Vue.js应用中
// 使用window.myElectronAPI.machineIdSync可以安全地在渲染进程中获取机器码
const machineId = window.myElectronAPI.machineIdSync();
console.log('Machine ID:', machineId);

===end===

在 Electron 中,当渲染进程通过 ipcRenderer.invoke() 调用某个方法时,
需要在主进程的 ipcMain 中注册对应的处理函数。
在主进程 main.js 中添加对 test1 消息的处理:

在渲染进程的 preload.js 中

GDScript3
11 行
// preload.js
const { contextBridge, ipcRenderer } = require('electron');
const { machineIdSync } = require('node-machine-id');

// 使用contextBridge安全地暴露machineIdSync函数和test1方法给渲染进程
contextBridge.exposeInMainWorld('myElectronAPI', {
  machineIdSync: machineIdSync,
  test1: (a) => {
    return ipcRenderer.invoke('test1', a);
  },
});

在 Vue.js 应用中,
调用 window.myElectronAPI.test1 来触发 test1 方法,
并获取主进程中处理后的结果:

GDScript3
7 行
// 在Vue.js应用中
async function test1FromElectron() {
  const result = await window.myElectronAPI.test1('Hello from Vue.js');
  console.log('Result from main process:', result);
}

test1FromElectron();

现在,应该能够在渲染进程中成功调用主进程中的 test1 方法,并得到返回结果了