当我按在一个加载的网站上的一个按钮时,电子应用会退出。这显然是一次崩溃,但并未在浏览器(Renderer)或浏览器上发出
BrowserView
render-process-gone
。它只是退出。但是window-all-closed
被发出
app.on('ready', () => {
app.on('render-process-gone', (e, webContents, details) => {
console.log('render-process-gone', details);
});
const win = new BrowserWindow({
frame: false,
webPreferences: {
worldSafeExecuteJavaScript: true,
nodeIntegration: true,
webviewTag: false,
enableRemoteModule: false,
}
});
win.loadURL('file://' + __dirname + '/renderer.html');
const view = new BrowserView({
webPreferences: {
preload: 'preload.js'
worldSafeExecuteJavaScript: true,
nodeIntegration: false,
nodeIntegrationInSubFrames: true,
enableRemoteModule: false,
}
});
view.webContents.loadURL('http://website.com');
view.webContents.on('render-process-gone', (e, details) => {
console.log('render-process-gone', details);
});
win.setBrowserView(view);
});
app.on('window-all-closed', () => {
console.log('exiting...');
app.quit();
});
有一种方法可以找出可能导致这一点的是什么?
update:我在WebPreferences中添加了
sandbox: true
,现在不再崩溃了!
render-process-gone
renderer-process-crashed
事件,以替换崩溃的事件。 #23096ref:https://github.com/electron/electron/pull/23096