31 lines
969 B
TypeScript
31 lines
969 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) => {
|
|
url = url.replace('taobin-electron://', 'http://')
|
|
const parsedUrl = new URL(url)
|
|
|
|
if (parsedUrl.host === 'login') {
|
|
win?.webContents.send('loginSuccess', {
|
|
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')
|
|
})
|
|
}
|
|
})
|
|
}
|