Я пытаюсь создать собственный протокол для своего приложения, используя модуль Electron.protocols.
/**
* STATUS: this works perfectly and returns the data we expect.
*
* @param request
* @param callback
*/
function interceptBufferProtocol(request, callback) {
callback({
mimeType: "text/html",
data: Buffer.from('<html><head><title>Testos</title></head><body>Hello</body></html>', 'utf8')
});
}
protocol.registerBufferProtocol("http", interceptBufferProtocol, async (err) => {
console.log(err)
});
protocol.interceptBufferProtocol('http', interceptBufferProtocol, async (error) => {
if (error) {
console.error('failed to register protocol handler for HTTP');
return;
}
await createWindow();
});
Но при этом он работает только в mainWindow (первое созданное browserWindow), еслиПосле этого я создаю browserWindow, оно не регистрируется, и вместо перехвата и отображения пользовательского HTML-кода показывает фактическую страницу.