import { NgZone } from '@angular/core'; import { Router } from '@angular/router'; import { Observable } from 'rxjs'; import { BrowserWindow, BrowserWindowConstructorOptions, IpcMainEvent, IpcRendererEvent, Remote, RendererInterface } from 'electron'; import { TrayProxy } from './tray-proxy'; import { AutoUpdaterProxy } from './auto-updater-proxy'; import { HttpClient } from '@angular/common/http'; import { NgxElectronBrowserWindowProxy, NgxElectronBrowserWindowProxyConstructorOptions, ChannelsMap, NgxElectronIpcRendererProxy } from '@ngx-electron/core'; export declare type BrowserWindowOptions = BrowserWindowConstructorOptions & { path: string; key?: string; parentKey?: string; parentId?: number; callback?: (event: IpcMainEvent) => void; }; export declare class NgxElectronService { private router; private httpClient; private ngZone; openerBrowserWindow?: BrowserWindow; electron?: RendererInterface; remote?: Remote; ipcRenderer?: NgxElectronIpcRendererProxy; /** * 自动更新 */ autoUpdater?: AutoUpdaterProxy; tray?: TrayProxy; /** * 判断是否为electron环境 */ isElectron: boolean; get isServe(): boolean; get port(): string; get host(): string; get isOpenDevTools(): boolean; get isMac(): boolean; get isWindows(): boolean; get isLinux(): boolean; constructor(router: Router, httpClient: HttpClient, ngZone: NgZone); sendDataToWindowsByKeys(data: T, ...keys: string[]): void; sendDataToWindowsByIds(data: T, ...ids: number[]): void; sendDataToAllWindows(data: T): void; sendDataToWindows(data: T, ...wins: BrowserWindow[]): void; sendDataToOpenerWindow(data: T): void; createWindow(options: NgxElectronBrowserWindowProxyConstructorOptions): NgxElectronBrowserWindowProxy; /** * 获得其他窗口发送据 注意:数据在的数发送过程中json序列化 会去掉方法和原型 * @return Observable */ data(): Observable<{ event: IpcRendererEvent; data?: T; }>; /** * * 获得此key的窗口 若key值的窗口不存在则返回 null * 在调用之前要确保主进程初始化了@ngx-electron/electron-main模块 否则不要调用此方法 * @param key key * @return 如果返回null说明 没有此key的窗口 */ /** * 加载json数组从assets中加载 * @param assetsPath json文件路径 */ loadJsonArrayFromAssets(assetsPath: string): Observable; /** * 加载json文件从assets中加载 * @param assetsPath json文件路径 */ loadJsonObjectFromAssets(assetsPath: string): Observable; }