From bb83b2c4ff47c30825650358ab5a90db166dabf2 Mon Sep 17 00:00:00 2001 From: ZiuChen <457353192@qq.com> Date: Wed, 2 Nov 2022 23:16:22 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=9B=91=E5=90=AC=E6=97=B6=E5=AF=B9Mac=E7=9A=84?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E5=88=A4=E6=96=AD=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=BA=86=E7=BC=BA=E5=B0=91=E7=9B=91=E5=90=AC=E5=99=A8=E7=9A=84?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/listener.js | 5 +++-- src/global/initPlugin.js | 18 +++++++----------- src/views/Main.vue | 6 +++--- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/public/listener.js b/public/listener.js index 36c51bb..5c56f75 100644 --- a/public/listener.js +++ b/public/listener.js @@ -12,7 +12,8 @@ class ClipboardEventListener extends EventEmitter { startListening(dbPath) { const targetMap = { win32: 'clipboard-event-handler-win32.exe', - linux: 'clipboard-event-handler-linux' + linux: 'clipboard-event-handler-linux', + darwin: 'clipboard-event-handler-mac' } const { platform } = process const target = path.resolve( @@ -25,7 +26,7 @@ class ClipboardEventListener extends EventEmitter { } if (platform === 'win32') { this.child = execFile(target) - } else if (platform === 'linux') { + } else if (platform === 'linux' || platform === 'darwin') { chmodSync(target, 0o755) this.child = execFile(target) } else { diff --git a/src/global/initPlugin.js b/src/global/initPlugin.js index 710b20b..57e858a 100644 --- a/src/global/initPlugin.js +++ b/src/global/initPlugin.js @@ -217,8 +217,8 @@ export default function initPlugin() { utools.outPlugin() } const errorHandler = (error) => { - const info = '请到设置页检查剪贴板监听程序状态' - utools.showNotification('启动剪贴板监听程序启动出错: ' + error + info) + // const info = '请到设置页检查剪贴板监听程序状态' + // utools.showNotification('启动剪贴板监听程序启动出错: ' + error + info) addCommonListener() } listener @@ -228,17 +228,13 @@ export default function initPlugin() { .on('error', (error) => errorHandler(error)) } - if (!utools.isMacOs()) { - // 首次启动插件 即开启监听 - registerClipEvent(listener) - listener.startListening(setting.database.path[nativeId]) - } else { - // macos 由于无法执行 clipboard-event-handler-mac 所以使用旧方法 - addCommonListener() - } + // 首次启动插件 即开启监听 + // 如果监听程序异常退出 则会在errorHandler中开启常规监听 + registerClipEvent(listener) + listener.startListening(setting.database.path[nativeId]) utools.onPluginEnter(() => { - if (!listener.listening && !utools.isMacOs()) { + if (!listener.listening) { // 进入插件后 如果监听已关闭 则重新开启监听 registerClipEvent(listener) listener.startListening(setting.database.path[nativeId]) diff --git a/src/views/Main.vue b/src/views/Main.vue index f232471..5ec29a4 100644 --- a/src/views/Main.vue +++ b/src/views/Main.vue @@ -226,14 +226,14 @@ onMounted(() => { updateShowList(activeTab.value) // 定期检查更新 - if (!utools.isMacOs() && window.listener.listening) { - // 非macOS系统且监听器开启时 + if (window.listener.listening) { + // 监听器开启时 window.listener.on('change', () => { list.value = window.db.dataBase.data updateShowList(activeTab.value) }) } else { - // macOS或监听器启动失败时 + // 监听器启动失败时 let prev = {} setInterval(() => { const now = window.db.dataBase.data[0]