From 97cacb43835bfb040ab86a1df6771c004f19f7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Thu, 28 Nov 2024 20:00:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20framework=E7=9A=84=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/liteloader.cjs | 4 ++++ src/framework/preload.cjs | 9 +++++---- src/framework/renderer.js | 32 +++++++++++++++++--------------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/framework/liteloader.cjs b/src/framework/liteloader.cjs index c2b52594..96784924 100644 --- a/src/framework/liteloader.cjs +++ b/src/framework/liteloader.cjs @@ -1,6 +1,10 @@ //LiteLoader需要提供部分IPC接口,以便于其他插件调用 const { ipcMain } = require('electron'); const napcat = require('./napcat.cjs'); +const { shell } = require('electron'); ipcMain.handle('napcat_get_webtoken', async (event, arg) => { return napcat.NCgetWebUiUrl(); }); +ipcMain.on('open_external_url', (event, url) => { + shell.openExternal(url); +}); \ No newline at end of file diff --git a/src/framework/preload.cjs b/src/framework/preload.cjs index eef7e759..c24da2dc 100644 --- a/src/framework/preload.cjs +++ b/src/framework/preload.cjs @@ -1,10 +1,11 @@ -const { contextBridge } = require('electron'); -const { ipcRenderer } = require('electron'); - +const { contextBridge, ipcRenderer } = require('electron'); const napcat = { getWebUiUrl: async () => { return ipcRenderer.invoke('napcat_get_webtoken'); }, + openExternalUrl: async (url) => { + ipcRenderer.send('open_external_url', url); + } }; // 在window对象下导出只读对象 -contextBridge.exposeInMainWorld('napcat', napcat); +contextBridge.exposeInMainWorld('napcat', napcat); \ No newline at end of file diff --git a/src/framework/renderer.js b/src/framework/renderer.js index 8c447d25..97dc1fa6 100644 --- a/src/framework/renderer.js +++ b/src/framework/renderer.js @@ -1,27 +1,16 @@ export const onSettingWindowCreated = async (view) => { - - // view.style.width = "100%"; - // view.style.height = "100%"; - // //添加iframe - // const iframe = document.createElement("iframe"); - // iframe.src = await window.napcat.getWebUiUrl(); - // iframe.width = "100%"; - // iframe.height = "100%"; - // iframe.style.border = "none"; - // //去掉iframe滚动条 - // //iframe.scrolling = "no"; - // //有滚动条何尝不是一种美 - // view.appendChild(iframe); let webui = await window.napcat.getWebUiUrl(); view.innerHTML = ` - 打开配置页面 + 在QQ内打开配置页面 + 在默认浏览器打开配置页面
+ WebUi远程地址可以点击下方复制哦~ WebUi
@@ -32,5 +21,18 @@ export const onSettingWindowCreated = async (view) => { view.querySelector('.nc_openwebui').addEventListener('click', () => { window.open(webui, '_blank'); }); + view.querySelector('.nc_openwebui_ex').addEventListener('click', () => { + window.napcat.openExternalUrl(webui); + }); view.querySelector('.nc_webui').innerText = webui; -}; + + // 添加点击复制功能 + view.querySelector('.nc_webui').addEventListener('click', async () => { + try { + await navigator.clipboard.writeText(webui); + alert('WebUi URL 已复制到剪贴板'); + } catch (err) { + console.error('复制到剪贴板失败: ', err); + } + }); +}; \ No newline at end of file