UNPKG

@lynker-desktop/electron-window-manager

Version:

electron-window-manager

87 lines 3.79 kB
import { WebContents } from 'electron'; import type { ElectronWindowsManagerOptions, BWItem, BVItem, PreloadWebContentsConfig } from '../common'; export declare const getCustomSession: () => Electron.Session; export declare const enable: (win: WebContents) => void; export declare class WindowsManager { loadingViewUrl: string | undefined; errorViewUrl: string | undefined; preload?: string; preloadWebContentsConfig?: PreloadWebContentsConfig; windows: Map<number, BWItem | BVItem>; preloadedBW: BWItem | null; preloadedBW_FramelessWithButtons: BWItem | null; preloadedBW_FramelessNoButtons: BWItem | null; preloadedBV: BVItem | null; preloading: boolean; webviewDomainWhiteList: string[]; private createQueue; private isCreating; /** * webview 域名白名单 * 传入格式示例: * [ * 'example.com', // 精确匹配 example.com * '.example.com', // 匹配所有 example.com 的子域名,如 a.example.com、b.example.com * 'sub.domain.com', // 精确匹配 sub.domain.com * 'localhost', // 匹配 localhost 及本地回环地址 * '127.0.0.1', // 匹配 127.0.0.1 * '::1' // 匹配 IPv6 本地回环 * ] * 注意: * - 以点开头的(如 .example.com)会匹配所有子域名。 * - 不带点的(如 example.com)只匹配主域名。 * - 'localhost'、'127.0.0.1'、'::1' 以及局域网 IP(如 192.168.x.x、10.x.x.x、172.16.x.x~172.31.x.x)都视为本地白名单。 */ constructor(preload?: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[]); /** * 设置预加载的webContents配置 * @param preloadWebContentsConfig 预加载的webContents配置 */ setPreloadWebContentsConfig(preloadWebContentsConfig: PreloadWebContentsConfig): void; /** * 预加载实例 */ private _preloadInstances; /** * 创建预加载的窗口 * @param options 窗口选项 * @returns 预加载的窗口 */ private _createPreloadBW; /** * 创建预加载的浏览器视图 * @returns 预加载的浏览器视图 */ private _createPreloadBV; create(options: Omit<ElectronWindowsManagerOptions, 'type'> & { type?: 'BW'; }): Promise<BWItem>; create(options: ElectronWindowsManagerOptions & { type: 'BV'; }): Promise<BVItem>; create(options: ElectronWindowsManagerOptions): Promise<BVItem | BWItem>; /** * 处理创建队列 */ private processCreateQueue; /** * 实际的窗口创建逻辑 */ private _createWindow; _setLoadingView(window: BWItem, createOptions: ElectronWindowsManagerOptions): void; get(idOrName: string | number): BWItem | BVItem | undefined; getAll(type: 'BW'): Map<number, BWItem>; getAll(type: 'BV'): Map<number, BVItem>; getAll(): Map<number, BWItem | BVItem>; close(idOrName: string | number): boolean; closeAll(): void; rename(idOrName: string | number, newName: string): BWItem | BVItem | undefined; reInitUrl(idOrName: string | number, url: string): BWItem | BVItem | undefined; getPreload(): string | undefined; private _applyBrowserWindowOptions; private _applyBrowserViewOptions; createPreloadWebContents(url: string): Promise<unknown>; } export declare let isInitialized: boolean; export declare const initialize: (preload?: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[]) => WindowsManager; //# sourceMappingURL=index.d.ts.map