fix: 先注册事件 后执行开始监听

This commit is contained in:
ZiuChen 2022-09-20 20:53:43 +08:00
parent f7a2215b64
commit 02b1bd603d

View File

@ -193,10 +193,17 @@ export default function initPlugin() {
const resetNav = () => document.querySelectorAll('.clip-switch-item')[0]?.click() const resetNav = () => document.querySelectorAll('.clip-switch-item')[0]?.click()
const registerClipEvent = (listener) => { const registerClipEvent = (listener) => {
const errorHandler = () => { const exitHandler = () => {
utools.showNotification('剪贴板监听异常退出 请重启插件以开启监听') utools.showNotification('剪贴板监听异常退出 请重启插件以开启监听')
utools.outPlugin() utools.outPlugin()
} }
const errorHandler = (error) => {
const info = '请手动安装 clipboard-event-handler-linux 到 ~/.local/bin'
const site = 'https://ziuchen.gitee.io/project/ClipboardManager/guide/'
utools.showNotification('启动剪贴板监听出错: ' + error + info)
utools.shellOpenExternal(site)
utools.outPlugin()
}
listener listener
.on('change', () => { .on('change', () => {
const item = pbpaste() const item = pbpaste()
@ -211,21 +218,15 @@ export default function initPlugin() {
item.updateTime = new Date().getTime() item.updateTime = new Date().getTime()
db.addItem(item) db.addItem(item)
}) })
.on('close', errorHandler) .on('close', exitHandler)
.on('exit', errorHandler) .on('exit', exitHandler)
.on('error', (error) => { .on('error', (error) => errorHandler(error))
const info = '请手动安装 clipboard-event-handler-linux 到 ~/.local/bin'
const site = 'https://ziuchen.gitee.io/project/ClipboardManager/guide/'
utools.showNotification('启动剪贴板监听出错: ' + error + info)
utools.shellOpenExternal(site)
utools.outPlugin()
})
} }
try { try {
// 首次启动插件 即开启监听 // 首次启动插件 即开启监听
listener.startListening()
registerClipEvent(listener) registerClipEvent(listener)
listener.startListening()
} catch (error) { } catch (error) {
utools.showNotification(error) utools.showNotification(error)
} }
@ -233,8 +234,8 @@ export default function initPlugin() {
utools.onPluginEnter(() => { utools.onPluginEnter(() => {
if (!listener.listening) { if (!listener.listening) {
// 进入插件后 如果监听已关闭 则重新开启监听 // 进入插件后 如果监听已关闭 则重新开启监听
listener.startListening()
registerClipEvent(listener) registerClipEvent(listener)
listener.startListening()
} }
toTop() toTop()
resetNav() resetNav()