From 5599c40db18567b819017b0d0505becfd4b48aca Mon Sep 17 00:00:00 2001 From: leejooy96 Date: Sat, 4 Feb 2023 17:12:08 +0900 Subject: [PATCH] main: fix external link not working correctly --- src/main/IPCs.ts | 7 ++++++- src/preload/index.ts | 5 ++--- src/renderer/utils/index.ts | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/IPCs.ts b/src/main/IPCs.ts index 3033a6d..e62bd79 100644 --- a/src/main/IPCs.ts +++ b/src/main/IPCs.ts @@ -1,4 +1,4 @@ -import { BrowserWindow, ipcMain } from 'electron' +import { BrowserWindow, ipcMain, shell } from 'electron' import Constants from './utils/Constants' /* @@ -10,5 +10,10 @@ export default class IPCs { ipcMain.on('msgRequestGetVersion', () => { window.webContents.send('msgReceivedVersion', Constants.APP_VERSION) }) + + // Open url via web browser + ipcMain.on('msgOpenExternalLink', async (event, url) => { + await shell.openExternal(url) + }) } } diff --git a/src/preload/index.ts b/src/preload/index.ts index fdbb2be..1754e71 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -1,11 +1,10 @@ -import { contextBridge, ipcRenderer, shell } from 'electron' +import { contextBridge, ipcRenderer } from 'electron' // Whitelist of valid channels used for IPC communication (Send message from Renderer to Main) -const mainAvailChannels = ['msgRequestGetVersion'] +const mainAvailChannels = ['msgRequestGetVersion', 'msgOpenExternalLink'] const rendererAvailChannels = ['msgReceivedVersion'] contextBridge.exposeInMainWorld('mainApi', { - openExternal: async (url) => await shell.openExternal(url), send: (channel, data) => { if (mainAvailChannels.includes(channel)) { ipcRenderer.send(channel, data) diff --git a/src/renderer/utils/index.ts b/src/renderer/utils/index.ts index add6596..aea916e 100644 --- a/src/renderer/utils/index.ts +++ b/src/renderer/utils/index.ts @@ -4,7 +4,7 @@ export default class Utils { } static async openExternal(url: string): Promise { - await window.mainApi.openExternal(url) + await window.mainApi.send('msgOpenExternalLink', url) } }