From 47dbd5d39a8ec6bc9c5b26fe6b63edb37486768e Mon Sep 17 00:00:00 2001 From: leejinho Date: Tue, 19 Nov 2019 19:34:53 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=ED=99=94=EB=B0=A9=20>=20text=20?= =?UTF-8?q?=EB=82=B4=20=EB=A7=81=ED=81=AC=20=EC=97=B0=EA=B2=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/lib/services/browser-native.service.ts | 4 ++++ .../src/lib/services/electron-native.service.ts | 8 +++++++- .../src/lib/services/native.service.ts | 2 ++ .../src/lib/components/message-box/text.component.ts | 7 +++---- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts b/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts index 0a0396b7..519e7811 100644 --- a/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts +++ b/projects/ucap-webmessenger-native-browser/src/lib/services/browser-native.service.ts @@ -143,6 +143,10 @@ export class BrowserNativeService extends NativeService { return new TranslateLoaderService(this, prefix, suffix); } + openDefaultBrowser(url: string): void { + open(url); + } + constructor(private httpClient: HttpClient) { super(); this.notificationService = new NotificationService(); diff --git a/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts b/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts index 94986d66..06601094 100644 --- a/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts +++ b/projects/ucap-webmessenger-native-electron/src/lib/services/electron-native.service.ts @@ -1,4 +1,4 @@ -import { ipcRenderer, remote } from 'electron'; +import { ipcRenderer, remote, shell } from 'electron'; import { Observable, Subject } from 'rxjs'; @@ -29,6 +29,7 @@ import { StatusCode } from '@ucap-webmessenger/core'; export class ElectronNativeService implements NativeService { private ipcRenderer: typeof ipcRenderer; private remote: typeof remote; + private shell: typeof shell; private logoutSubject: Subject | null = null; private logout$: Observable | null = null; @@ -231,6 +232,10 @@ export class ElectronNativeService implements NativeService { return new TranslateLoaderService(this, prefix, suffix); } + openDefaultBrowser(url: string): void { + this.shell.openExternal(url); + } + get isElectron() { return window && (window as any).process && (window as any).process.type; } @@ -239,6 +244,7 @@ export class ElectronNativeService implements NativeService { if (this.isElectron) { this.ipcRenderer = (window as any).require('electron').ipcRenderer; this.remote = (window as any).require('electron').remote; + this.shell = (window as any).require('electron').shell; } } } diff --git a/projects/ucap-webmessenger-native/src/lib/services/native.service.ts b/projects/ucap-webmessenger-native/src/lib/services/native.service.ts index 29a7491e..735342c8 100644 --- a/projects/ucap-webmessenger-native/src/lib/services/native.service.ts +++ b/projects/ucap-webmessenger-native/src/lib/services/native.service.ts @@ -41,4 +41,6 @@ export abstract class NativeService { prefix?: string, suffix?: string ): TranslateLoader; + + abstract openDefaultBrowser(url: string): void; } diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/text.component.ts b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/text.component.ts index 7d54ed0b..ccb979b6 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/text.component.ts +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/text.component.ts @@ -38,9 +38,8 @@ export class TextComponent implements OnInit, AfterViewInit { } onClickEvent(event: MouseEvent) { - console.log('component', (event.target as HTMLAnchorElement).text); - // this.nativeService.openDefaultBrowser( - // (event.target as HTMLAnchorElement).text - // ); + this.nativeService.openDefaultBrowser( + (event.target as HTMLAnchorElement).text + ); } }