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 + ); } }