Taobin-Recipe-Manager/client-electron/electron/deeplink.ts

32 lines
969 B
TypeScript
Raw Normal View History

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) => {
2024-02-20 15:01:43 +07:00
url = url.replace('taobin-electron://', 'http://')
const parsedUrl = new URL(url)
2024-02-20 15:01:43 +07:00
if (parsedUrl.host === 'login') {
win?.webContents.send('loginSuccess', {
2024-02-20 15:01:43 +07:00
id: parsedUrl.searchParams.get('id'),
email: parsedUrl.searchParams.get('email'),
name: parsedUrl.searchParams.get('name'),
picture: parsedUrl.searchParams.get('picture'),
permissions: parsedUrl.searchParams.get('permissions'),
accessToken: parsedUrl.searchParams.get('access_token'),
maxAge: parsedUrl.searchParams.get('max_age'),
refreshToken: parsedUrl.searchParams.get('refresh_token')
})
}
})
}