以下是一个简单的例子,演示如何使用 protocol 模块注册自定义协议并加载自定义资源:
在主进程的主文件中(通常是 main.js 或 index.js):
const { app, BrowserWindow, protocol } = require('electron');
const path = require('path');
let mainWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({ width: 800, height: 600 });
// 注册自定义协议
protocol.registerFileProtocol('custom', (request, callback) => {
const url = request.url.substr(9); // 去除协议前缀
const filePath = path.join(__dirname, url);
callback({ path: filePath });
});
mainWindow.loadURL('custom://example.html');
});
在这个例子中,我们使用 protocol.registerFileProtocol 方法注册了一个名为 'custom' 的自定义协议。回调函数中,我们处理了请求,并根据请求的 URL 构建了本地文件路径。最后,通过调用 callback({ path: filePath }) 返回了文件的路径。
在加载主窗口时,我们使用 mainWindow.loadURL('custom://example.html') 加载了一个使用自定义协议的 URL。这将触发我们注册的自定义协议处理,加载本地的 example.html 文件。
请注意,自定义协议可以用于加载本地资源、执行特定操作等,但需要注意安全性。不要使用不受信任的数据源注册自定义协议,以防止安全风险。
这只是一个简单的示例,你可以根据应用的需求定义更复杂的自定义协议处理逻辑。
转载请注明出处:http://www.pingtaimeng.com/article/detail/10926/Electron