当webview内部调用了window.close()函数,关闭了当前窗口时,也需要关闭当前的tab。

This commit is contained in:
Allen 2025-05-18 23:59:15 +08:00
parent 46285fb5a2
commit 0b1148e6ea
2 changed files with 15 additions and 1 deletions

View File

@ -1,7 +1,7 @@
{ {
"name": "china-telecom-app", "name": "china-telecom-app",
"productName": "china-telecom-app", "productName": "china-telecom-app",
"version": "1.1.0", "version": "1.1.1",
"description": "China Telecom App", "description": "China Telecom App",
"main": ".vite/build/main.js", "main": ".vite/build/main.js",
"scripts": { "scripts": {

View File

@ -155,7 +155,9 @@ async function addTabAsync(tabGroup: TabGroup, menuItem: MenuItem, allowCloseTab
const webview: Electron.WebviewTag = tab.webview as Electron.WebviewTag; const webview: Electron.WebviewTag = tab.webview as Electron.WebviewTag;
listenWebviewTitleChange(webview, tab); listenWebviewTitleChange(webview, tab);
// 监听 webview 的 DOM 加载完成事件
tab.once('webview-dom-ready', () => { tab.once('webview-dom-ready', () => {
// 设置 webview 的缩放比例
const webview: Electron.WebviewTag = tab.webview as Electron.WebviewTag; const webview: Electron.WebviewTag = tab.webview as Electron.WebviewTag;
const defaultZoomFactor: number = webview.getZoomFactor(); const defaultZoomFactor: number = webview.getZoomFactor();
console.log('Default zoom factor:', defaultZoomFactor); console.log('Default zoom factor:', defaultZoomFactor);
@ -166,6 +168,18 @@ async function addTabAsync(tabGroup: TabGroup, menuItem: MenuItem, allowCloseTab
} else { } else {
console.log('Default zoom factor is the same as the zoom factor:', zoomFactor); console.log('Default zoom factor is the same as the zoom factor:', zoomFactor);
} }
// 监听 webview 的关闭事件
webview.addEventListener('destroyed', (_event: Event) => {
console.log('Webview destroyed, closing tab:', tab.title);
tab.close(true);
});
// 监听 webview 的关闭事件(当页面调用 window.close() 时触发)
webview.addEventListener('close', (_event: Event) => {
console.log('Webview close event triggered, closing tab:', tab.title);
tab.close(true);
});
}); });
} }
}); });