From 355613358510c971fd8b0040a3f381b42ce4d740 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 2 Mar 2024 14:11:33 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/electron.js | 24 ++++++++++++++++++++++-- electron/render/tabs/index.html | 6 ++++++ electron/utils.js | 13 +++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/electron/electron.js b/electron/electron.js index 457ac5ae5..45c57a365 100644 --- a/electron/electron.js +++ b/electron/electron.js @@ -333,7 +333,7 @@ function createWebWindow(args) { }) webWindow.webContents.on('before-input-event', (event, input) => { - if (input.meta && input.key.toLowerCase() === 'r') { + if (utils.isMetaOrControl(input) && input.key.toLowerCase() === 'r') { reloadWebTab(0) event.preventDefault() } @@ -413,9 +413,11 @@ function createWebWindow(args) { }).then(_ => { }) }) browserView.webContents.on('before-input-event', (event, input) => { - if (input.meta && input.key.toLowerCase() === 'r') { + if (utils.isMetaOrControl(input) && input.key.toLowerCase() === 'r') { browserView.webContents.reload() event.preventDefault() + } else if (input.meta && input.shift && input.key.toLowerCase() === 'i') { + browserView.webContents.toggleDevTools() } }) browserView.webContents.loadURL(args.url).then(_ => { }).catch(_ => { }) @@ -610,6 +612,9 @@ app.on('browser-window-focus', () => { if (mainWindow) { mainWindow.webContents.send("browserWindowFocus", {}) } + if (storageBrowser) { + storageBrowser.webContents.reload() + } }) /** @@ -698,6 +703,18 @@ ipcMain.on('webTabBrowser', (event) => { event.returnValue = "ok" }) +/** + * 内置浏览器 - 打开开发者工具 + */ +ipcMain.on('webTabOpenDevTools', (event) => { + const item = currentWebTab() + if (!item) { + return + } + item.view.webContents.openDevTools() + event.returnValue = "ok" +}) + /** * 隐藏窗口(mac、win隐藏,其他关闭) */ @@ -854,6 +871,9 @@ ipcMain.on('storageBrowser', (event, args) => { nativeWindowOpen: true }, }) + storageBrowser.on('closed', () => { + storageBrowser = null + }) } storageBrowser.loadURL(args.url).then(_ => { }).catch(_ => { }) } diff --git a/electron/render/tabs/index.html b/electron/render/tabs/index.html index d6b9f2060..a58b4c1bc 100644 --- a/electron/render/tabs/index.html +++ b/electron/render/tabs/index.html @@ -63,6 +63,9 @@ break case 'title': + if (["HitoseaTask", "DooTask", "about:blank"].includes(detail.title)) { + return + } const titleItem = this.tabs.find(item => item.id === id) if (titleItem) { titleItem.title = detail.title @@ -100,6 +103,9 @@ break } } + window.__openDevTools = () => { + this.sendMessage('webTabOpenDevTools') + } }, computed: { pageTitle() { diff --git a/electron/utils.js b/electron/utils.js index a5f589701..9f65d8297 100644 --- a/electron/utils.js +++ b/electron/utils.js @@ -421,5 +421,18 @@ module.exports = { } callback({responseHeaders: details.responseHeaders}); }); + }, + + /** + * win mac meta control + * @param input + * @returns {boolean | Point | HTMLElement} + */ + isMetaOrControl(input) { + if (process.platform === 'win32') { + return input.control + } else { + return input.meta + } } }