第一次提交
This commit is contained in:
43
jeecgboot-vue3/electron/ipc/index.ts
Normal file
43
jeecgboot-vue3/electron/ipc/index.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { Tray, ipcMain, BrowserWindow, app, Notification } from 'electron';
|
||||
import type { NotificationConstructorOptions, IpcMainInvokeEvent } from 'electron';
|
||||
import { openInBrowser } from '../utils';
|
||||
import { omit } from 'lodash-es';
|
||||
|
||||
ipcMain.on('open-in-browser', (event: IpcMainInvokeEvent, url: string) => openInBrowser(url));
|
||||
// 处理任务栏闪烁
|
||||
ipcMain.on('notify-flash', (event: IpcMainInvokeEvent, count: number = 0) => {
|
||||
const win = BrowserWindow.getAllWindows()[0];
|
||||
if (!win) return;
|
||||
if (win.isFocused()) return;
|
||||
if (process.platform === 'win32') {
|
||||
// windows
|
||||
win.flashFrame(true);
|
||||
} else if (process.platform === 'darwin') {
|
||||
// Mac
|
||||
if (app.dock) {
|
||||
app.dock.bounce('informational');
|
||||
// 设置角标(未读消息)
|
||||
if (count > 0) {
|
||||
app.dock.setBadge(count.toString());
|
||||
} else {
|
||||
app.dock.setBadge('');
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// 通知 (点击通知打开指定页面)
|
||||
ipcMain.on('notify-with-path', (event: IpcMainInvokeEvent, options: NotificationConstructorOptions & { path: string }) => {
|
||||
const win = BrowserWindow.getAllWindows()[0];
|
||||
if (!win) return;
|
||||
if (win.isFocused()) return;
|
||||
const notification = new Notification({
|
||||
...omit(options, 'path'),
|
||||
});
|
||||
notification.on('click', () => {
|
||||
if (win.isMinimized()) win.restore();
|
||||
win.show();
|
||||
win.focus();
|
||||
// win.webContents.send('navigate-to', options.path);
|
||||
});
|
||||
notification.show();
|
||||
});
|
||||
Reference in New Issue
Block a user