const Printer = remote.require('electron').在主线程中报错?
时间: 2024-01-21 17:19:46 浏览: 26
这个错误的原因是你在渲染进程中调用了主进程中的模块。你需要使用 `ipcRenderer` 模块来与主进程通信,然后让主进程调用该模块。
例如,在主进程中创建一个 `Printer` 模块:
```javascript
const { BrowserWindow } = require('electron');
module.exports = {
print: (window, message) => {
window.webContents.print({ silent: true, printBackground: true }, () => {
window.webContents.executeJavaScript(`console.log('${message} printed successfully.');`);
});
}
};
```
然后在渲染进程中使用 `ipcRenderer` 与主进程通信:
```javascript
const { ipcRenderer } = require('electron');
ipcRenderer.send('print', 'Hello, World!');
ipcRenderer.on('print-reply', (event, message) => {
console.log(message);
});
```
最后,在主进程中监听 `print` 事件并调用 `Printer` 模块:
```javascript
const { ipcMain } = require('electron');
const Printer = require('./Printer');
ipcMain.on('print', (event, message) => {
Printer.print(BrowserWindow.getFocusedWindow(), message);
event.reply('print-reply', `${message} sent to printer.`);
});
```