Taobin-Recipe-Manager/client-electron/electron/deeplink.ts
2024-02-05 11:45:54 +07:00

34 lines
902 B
TypeScript

import { type BrowserWindow } from 'electron'
export default function (
app: Electron.App,
win: BrowserWindow | null,
ipcMain: Electron.IpcMain,
shell: Electron.Shell
) {
ipcMain.on('deeplink', (_event, url) => {
// open browser
shell.openExternal(url)
})
app.on('open-url', (_event, url) => {
const paramsString = url.split('://')[1]
const kind = paramsString.split('?')[0]
const params = new URLSearchParams(paramsString)
if (kind === '/login') {
win?.webContents.send('loginSuccess', {
id: params.get('id'),
name: params.get('name'),
email: params.get('email'),
picture: params.get('picture'),
permissions: params.get('permissions'),
access_token: params.get('access_token'),
max_age: params.get('access_token_max_age'),
refresh_token: params.get('refresh_token')
})
}
})
}