我一直试图让一个预加载脚本运行在我的电子应用程序,但它似乎要么没有运行在所有或只是没有正常工作。
我现在有一个主文件,一个预加载文件,一个渲染文件,和一个html.我只是尝试做一些东西从电子教程使用预加载文件,所以现在我的代码是这样的:
// main.js
const {app, BrowserWindow, ipcMain, Menu} = require('electron');
const url = require('url');
const path = require('path');
let mainWindow;
const createWindow = () => {
// Create a window
mainWindow = new BrowserWindow({
show: false,
autoHideMenuBar: true,
webPreferences: ({
preload: path.join(__dirname, 'scripts', 'preload.js'),
nodeIntegration: true,
}),
});
mainWindow.maximize();
mainWindow.show();
// Load HTML into window
mainWindow.loadFile('index.html');
// Open Dev Tools
// mainWindow.webContents.openDevTools();
console.log(versions);
}
// preload.js
const {contextBridge} = require('electron');
contextBridge.exposeInMainWorld('versions', {
node: () => process.version.node,
chrome: () => process.version.chrome,
electron: () => process.version.electron,
});
Index.html:
一个二个一个一个
目前我在render.js的HTML输出是“这个应用程序正在使用Chrome(vundefined),Node.js(vundefined)和Electron(vundefined)”,我在main.js中的console.log行抛出了一个ReferenceError,声明“版本未定义”。有人能告诉我如何解决这个问题吗?提前感谢。
1条答案
按热度按时间vuv7lop31#
我想你打错了在预加载脚本中
应为(添加“s”以处理.version
可以看一下文档:https://www.electronjs.org/docs/latest/api/process