@lynker-desktop/electron-window-manager 0.0.9-alpha.7 → 0.0.9-alpha.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -2
- package/common/index.d.ts +25 -0
- package/common/index.d.ts.map +1 -1
- package/esm/common/index.d.ts +25 -0
- package/esm/common/index.d.ts.map +1 -1
- package/esm/main/index.d.ts +49 -13
- package/esm/main/index.d.ts.map +1 -1
- package/esm/main/index.js +904 -342
- package/esm/main/index.js.map +1 -1
- package/esm/preload/index.js +17 -2
- package/esm/preload/index.js.map +1 -1
- package/esm/renderer/index.d.ts +5 -5
- package/esm/renderer/index.d.ts.map +1 -1
- package/esm/renderer/index.js +351 -195
- package/esm/renderer/index.js.map +1 -1
- package/main/index.d.ts +49 -13
- package/main/index.d.ts.map +1 -1
- package/main/index.js +911 -349
- package/main/index.js.map +1 -1
- package/package.json +4 -3
- package/preload/index.js +16 -1
- package/preload/index.js.map +1 -1
- package/renderer/index.d.ts +5 -5
- package/renderer/index.d.ts.map +1 -1
- package/renderer/index.js +352 -196
- package/renderer/index.js.map +1 -1
package/README.md
CHANGED
|
@@ -50,8 +50,8 @@ ewm.create({
|
|
|
50
50
|
width: 100,
|
|
51
51
|
height:100,
|
|
52
52
|
webPreferences: {
|
|
53
|
-
plugins: true,
|
|
54
|
-
nodeIntegration: true,
|
|
53
|
+
plugins: true,
|
|
54
|
+
nodeIntegration: true,
|
|
55
55
|
contextIsolation: false,
|
|
56
56
|
backgroundThrottling: false,
|
|
57
57
|
webSecurity: false,
|
|
@@ -62,6 +62,57 @@ ewm.create({
|
|
|
62
62
|
|
|
63
63
|
完整的控制接口实现参见[example](./example)。
|
|
64
64
|
|
|
65
|
+
### BrowserView 排序功能
|
|
66
|
+
|
|
67
|
+
当创建BrowserView时,可以通过`zIndex`参数来控制BrowserView的显示顺序。数值越小,BrowserView越靠前显示。
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
// 创建具有不同zIndex层级的BrowserView
|
|
71
|
+
windowsManager.create({
|
|
72
|
+
type: 'BV',
|
|
73
|
+
name: 'background-view',
|
|
74
|
+
url: 'http://localhost:8000/background',
|
|
75
|
+
zIndex: 10, // zIndex较大,显示在后面
|
|
76
|
+
browserWindow: {
|
|
77
|
+
parent: mainWindowId
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
windowsManager.create({
|
|
82
|
+
type: 'BV',
|
|
83
|
+
name: 'foreground-view',
|
|
84
|
+
url: 'http://localhost:8000/foreground',
|
|
85
|
+
zIndex: 1, // zIndex较小,显示在前面
|
|
86
|
+
browserWindow: {
|
|
87
|
+
parent: mainWindowId
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### 排序优化选项
|
|
93
|
+
|
|
94
|
+
为了避免频繁排序导致的闪烁问题,提供了以下选项:
|
|
95
|
+
|
|
96
|
+
1. **禁用自动排序**:在创建时设置 `disableAutoSort: true`
|
|
97
|
+
```javascript
|
|
98
|
+
windowsManager.create({
|
|
99
|
+
type: 'BV',
|
|
100
|
+
name: 'manual-sort-view',
|
|
101
|
+
url: 'http://localhost:8000/view',
|
|
102
|
+
zIndex: 5,
|
|
103
|
+
disableAutoSort: true, // 禁用自动排序
|
|
104
|
+
browserWindow: {
|
|
105
|
+
parent: mainWindowId
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
2. **手动排序**:使用 `sortBrowserViews` 方法手动触发排序
|
|
111
|
+
```javascript
|
|
112
|
+
// 在渲染进程中
|
|
113
|
+
ewm.sortBrowserViews(windowId); // 手动排序指定窗口的BrowserView
|
|
114
|
+
```
|
|
115
|
+
|
|
65
116
|
### 运行 Example
|
|
66
117
|
|
|
67
118
|
- yarn install && cd example/renderer && yarn
|
package/common/index.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ interface ElectronWindowsManagerOptionsBase {
|
|
|
33
33
|
openDevTools?: boolean;
|
|
34
34
|
preventOriginClose?: boolean;
|
|
35
35
|
preventOriginNavigate?: boolean;
|
|
36
|
+
/** BrowserView zIndex层级,数值越小越靠前 */
|
|
37
|
+
zIndex?: number;
|
|
36
38
|
}
|
|
37
39
|
export interface BWItem extends BrowserWindow {
|
|
38
40
|
_id: number;
|
|
@@ -44,6 +46,8 @@ export interface BWItem extends BrowserWindow {
|
|
|
44
46
|
_extraData?: string;
|
|
45
47
|
/** 初始化url */
|
|
46
48
|
_initUrl?: string;
|
|
49
|
+
/** zIndex层级,数值越小越靠前 */
|
|
50
|
+
_zIndex?: number;
|
|
47
51
|
}
|
|
48
52
|
export interface BVItem extends BrowserView {
|
|
49
53
|
id: number;
|
|
@@ -56,6 +60,27 @@ export interface BVItem extends BrowserView {
|
|
|
56
60
|
_extraData?: string;
|
|
57
61
|
/** 初始化url */
|
|
58
62
|
_initUrl?: string;
|
|
63
|
+
/** zIndex层级,数值越小越靠前 */
|
|
64
|
+
_zIndex?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 预加载配置接口
|
|
68
|
+
*/
|
|
69
|
+
export interface PreloadWebContentsConfig {
|
|
70
|
+
nodeIntegration?: boolean;
|
|
71
|
+
contextIsolation?: boolean;
|
|
72
|
+
/** 预加载的 URL */
|
|
73
|
+
url: string;
|
|
74
|
+
/** 是否预加载普通窗口 */
|
|
75
|
+
enableBW?: boolean;
|
|
76
|
+
/** 是否预加载无边框有按钮的窗口 */
|
|
77
|
+
enableBW_FramelessWithButtons?: boolean;
|
|
78
|
+
/** 是否预加载无边框无按钮的窗口 */
|
|
79
|
+
enableBW_FramelessNoButtons?: boolean;
|
|
80
|
+
/** 是否预加载浏览器视图 */
|
|
81
|
+
enableBV?: boolean;
|
|
82
|
+
/** 自定loadURL */
|
|
83
|
+
customLoadURL?: (url: string, originLoadURL: BrowserWindow['loadURL'] | BrowserView['webContents']['loadURL'], webContents: BrowserWindow['webContents'] | BrowserView['webContents']) => Promise<string>;
|
|
59
84
|
}
|
|
60
85
|
export {};
|
|
61
86
|
//# sourceMappingURL=index.d.ts.map
|
package/common/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/common/index.ts"],"names":[],"mappings":"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"}
|
package/esm/common/index.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ interface ElectronWindowsManagerOptionsBase {
|
|
|
33
33
|
openDevTools?: boolean;
|
|
34
34
|
preventOriginClose?: boolean;
|
|
35
35
|
preventOriginNavigate?: boolean;
|
|
36
|
+
/** BrowserView zIndex层级,数值越小越靠前 */
|
|
37
|
+
zIndex?: number;
|
|
36
38
|
}
|
|
37
39
|
export interface BWItem extends BrowserWindow {
|
|
38
40
|
_id: number;
|
|
@@ -44,6 +46,8 @@ export interface BWItem extends BrowserWindow {
|
|
|
44
46
|
_extraData?: string;
|
|
45
47
|
/** 初始化url */
|
|
46
48
|
_initUrl?: string;
|
|
49
|
+
/** zIndex层级,数值越小越靠前 */
|
|
50
|
+
_zIndex?: number;
|
|
47
51
|
}
|
|
48
52
|
export interface BVItem extends BrowserView {
|
|
49
53
|
id: number;
|
|
@@ -56,6 +60,27 @@ export interface BVItem extends BrowserView {
|
|
|
56
60
|
_extraData?: string;
|
|
57
61
|
/** 初始化url */
|
|
58
62
|
_initUrl?: string;
|
|
63
|
+
/** zIndex层级,数值越小越靠前 */
|
|
64
|
+
_zIndex?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 预加载配置接口
|
|
68
|
+
*/
|
|
69
|
+
export interface PreloadWebContentsConfig {
|
|
70
|
+
nodeIntegration?: boolean;
|
|
71
|
+
contextIsolation?: boolean;
|
|
72
|
+
/** 预加载的 URL */
|
|
73
|
+
url: string;
|
|
74
|
+
/** 是否预加载普通窗口 */
|
|
75
|
+
enableBW?: boolean;
|
|
76
|
+
/** 是否预加载无边框有按钮的窗口 */
|
|
77
|
+
enableBW_FramelessWithButtons?: boolean;
|
|
78
|
+
/** 是否预加载无边框无按钮的窗口 */
|
|
79
|
+
enableBW_FramelessNoButtons?: boolean;
|
|
80
|
+
/** 是否预加载浏览器视图 */
|
|
81
|
+
enableBV?: boolean;
|
|
82
|
+
/** 自定loadURL */
|
|
83
|
+
customLoadURL?: (url: string, originLoadURL: BrowserWindow['loadURL'] | BrowserView['webContents']['loadURL'], webContents: BrowserWindow['webContents'] | BrowserView['webContents']) => Promise<string>;
|
|
59
84
|
}
|
|
60
85
|
export {};
|
|
61
86
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAE3H,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IACxF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;IACpF,MAAM,CAAC,EAAE,MAAM,GAAG,+BAA+B,CAAC,QAAQ,CAAC,CAAC;CAC7D;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,2BAA2B,CAAC,EAAE,GAAG,CAAC;KACnC;CACF;AAED,MAAM,MAAM,6BAA6B,GACrC,CAAC;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,GACxH,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,IAAI,CAAC,iCAAiC,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;AAE1H,UAAU,iCAAiC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,aAAa,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
package/esm/main/index.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { WebContents } from 'electron';
|
|
2
|
-
import type { ElectronWindowsManagerOptions, BWItem, BVItem } from '../common';
|
|
2
|
+
import type { ElectronWindowsManagerOptions, BWItem, BVItem, PreloadWebContentsConfig } from '../common';
|
|
3
3
|
export declare const getCustomSession: () => Electron.Session;
|
|
4
4
|
export declare const enable: (win: WebContents) => void;
|
|
5
5
|
export declare class WindowsManager {
|
|
6
6
|
loadingViewUrl: string | undefined;
|
|
7
7
|
errorViewUrl: string | undefined;
|
|
8
8
|
preload?: string;
|
|
9
|
-
|
|
9
|
+
preloadWebContentsConfig?: PreloadWebContentsConfig;
|
|
10
10
|
windows: Map<number, BWItem | BVItem>;
|
|
11
|
+
windowsByName: Map<string, number>;
|
|
11
12
|
preloadedBW: BWItem | null;
|
|
12
13
|
preloadedBW_FramelessWithButtons: BWItem | null;
|
|
13
14
|
preloadedBW_FramelessNoButtons: BWItem | null;
|
|
14
15
|
preloadedBV: BVItem | null;
|
|
15
16
|
preloading: boolean;
|
|
16
17
|
webviewDomainWhiteList: string[];
|
|
17
|
-
private
|
|
18
|
-
private isCreating;
|
|
18
|
+
private cleanupDestroyedWindowsDebounced;
|
|
19
19
|
/**
|
|
20
20
|
* webview 域名白名单
|
|
21
21
|
* 传入格式示例:
|
|
@@ -32,12 +32,19 @@ export declare class WindowsManager {
|
|
|
32
32
|
* - 不带点的(如 example.com)只匹配主域名。
|
|
33
33
|
* - 'localhost'、'127.0.0.1'、'::1' 以及局域网 IP(如 192.168.x.x、10.x.x.x、172.16.x.x~172.31.x.x)都视为本地白名单。
|
|
34
34
|
*/
|
|
35
|
-
constructor(preload?: string, loadingViewUrl?: string, errorViewUrl?: string,
|
|
35
|
+
constructor(preload?: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[]);
|
|
36
36
|
/**
|
|
37
|
-
* 设置预加载的webContents
|
|
38
|
-
* @param
|
|
37
|
+
* 设置预加载的webContents配置
|
|
38
|
+
* @param preloadWebContentsConfig 预加载的webContents配置
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
setPreloadWebContentsConfig(preloadWebContentsConfig: PreloadWebContentsConfig): void;
|
|
41
|
+
/**
|
|
42
|
+
* Promise 超时包装函数
|
|
43
|
+
* @param promise 要包装的 Promise
|
|
44
|
+
* @param timeout 超时时间(毫秒)
|
|
45
|
+
* @param errorMessage 超时错误信息
|
|
46
|
+
*/
|
|
47
|
+
private _withTimeout;
|
|
41
48
|
/**
|
|
42
49
|
* 预加载实例
|
|
43
50
|
*/
|
|
@@ -60,15 +67,28 @@ export declare class WindowsManager {
|
|
|
60
67
|
type: 'BV';
|
|
61
68
|
}): Promise<BVItem>;
|
|
62
69
|
create(options: ElectronWindowsManagerOptions): Promise<BVItem | BWItem>;
|
|
63
|
-
/**
|
|
64
|
-
* 处理创建队列
|
|
65
|
-
*/
|
|
66
|
-
private processCreateQueue;
|
|
67
70
|
/**
|
|
68
71
|
* 实际的窗口创建逻辑
|
|
69
72
|
*/
|
|
70
73
|
private _createWindow;
|
|
71
74
|
_setLoadingView(window: BWItem, createOptions: ElectronWindowsManagerOptions): void;
|
|
75
|
+
/**
|
|
76
|
+
* 检查窗口是否已销毁
|
|
77
|
+
*/
|
|
78
|
+
private _isWindowDestroyed;
|
|
79
|
+
/**
|
|
80
|
+
* 安全地获取窗口的 webContents.id
|
|
81
|
+
* 如果 webContents 已销毁,返回 undefined
|
|
82
|
+
*/
|
|
83
|
+
_getWebContentsId(win: BWItem | BVItem | null | undefined): number | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* 判断是否本地/内网IP
|
|
86
|
+
*/
|
|
87
|
+
private _isLocalhost;
|
|
88
|
+
/**
|
|
89
|
+
* 清理已销毁的窗口(延迟执行,避免频繁检查)
|
|
90
|
+
*/
|
|
91
|
+
private _cleanupDestroyedWindows;
|
|
72
92
|
get(idOrName: string | number): BWItem | BVItem | undefined;
|
|
73
93
|
getAll(type: 'BW'): Map<number, BWItem>;
|
|
74
94
|
getAll(type: 'BV'): Map<number, BVItem>;
|
|
@@ -81,7 +101,23 @@ export declare class WindowsManager {
|
|
|
81
101
|
private _applyBrowserWindowOptions;
|
|
82
102
|
private _applyBrowserViewOptions;
|
|
83
103
|
createPreloadWebContents(url: string): Promise<unknown>;
|
|
104
|
+
getWindowForWebContentsId(wcId: number): Promise<BWItem | undefined>;
|
|
105
|
+
/**
|
|
106
|
+
* 手动对BrowserView进行排序
|
|
107
|
+
* @param windowId 窗口ID或名称
|
|
108
|
+
*/
|
|
109
|
+
sortBrowserViews(windowId: string | number): void;
|
|
110
|
+
/**
|
|
111
|
+
* 防抖的排序方法
|
|
112
|
+
* @param window 目标窗口
|
|
113
|
+
*/
|
|
114
|
+
private sortBrowserViewsDebounced;
|
|
115
|
+
/**
|
|
116
|
+
* 对BrowserView进行排序
|
|
117
|
+
* @param window 目标窗口
|
|
118
|
+
*/
|
|
119
|
+
private _sortBrowserViews;
|
|
84
120
|
}
|
|
85
121
|
export declare let isInitialized: boolean;
|
|
86
|
-
export declare const initialize: (preload?: string, loadingViewUrl?: string, errorViewUrl?: string,
|
|
122
|
+
export declare const initialize: (preload?: string, loadingViewUrl?: string, errorViewUrl?: string, preloadWebContentsConfig?: PreloadWebContentsConfig, webviewDomainWhiteList?: string[]) => WindowsManager;
|
|
87
123
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/main/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAmC,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"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"}
|