window(窗口)

[TOC] 控制插件窗口显示、隐藏、全屏幕等各种操作。

下面示例为 window 的常用功能:

await eagle.window.show();          // 显示插件窗口
await eagle.window.hide();          // 隐藏插件窗口

await eagle.window.minimize();          // 缩小窗口
await eagle.window.restore();           // 还原缩小

await eagle.window.maximize();          // 最大化窗口
await eagle.window.unmaximize();        // 还原最大化

await eagle.window.setFullScreen(true);     // 设为全屏幕
await eagle.window.setFullScreen(false);    // 离开全屏幕

方法

show()

显示并聚焦于窗口。

  • 返回 Promise<>
await eagle.window.show();

showInactive()

显示但不聚焦于窗口。

  • 返回 Promise<>
await eagle.window.showInactive();

hide()

隐藏插件窗口。

  • 返回 Promise<>
await eagle.window.hide();

focus()

使插件窗口获取焦点。

  • 返回 Promise<>
await eagle.window.focus();

minimize()

最小化插件窗口。

  • 返回 Promise<>
await eagle.window.minimize();

isMinimized()

判断窗口是否最小化。

  • 返回 Promise<minimized: boolean>
  • minimized boolean - 窗口是否最小化
let isMinimized = await eagle.window.isMinimized();

restore()

将插件窗口从最小化状态恢复到以前的状态。

  • 返回 Promise<>
await eagle.window.restore();

maximize()

最大化插件窗口。 如果窗口尚未显示,该方法也会将其显示 (但不会聚焦)。

  • 返回 Promise<>
await eagle.window.maximize();

unmaximize()

取消插件窗口最大化

  • 返回 Promise<>
await eagle.window.unmaximize();

isMaximized()

判断窗口是否最大化

  • 返回 Promise<maximized: boolean>
  • maximized boolean - 窗口是否最大化
let isMaximized = await eagle.window.isMaximized();

setFullScreen(flag)

设置窗口是否应处于全屏模式。

  • flag boolean - 是否设为全屏
  • 返回 Promise<>
await eagle.window.setFullScreen(true);     // 进入全屏
await eagle.window.setFullScreen(false);    // 退出全屏

isFullScreen()

判断窗口是否全屏

  • 返回 Promise<fullscreen: boolean>
  • fullscreen boolean - 窗口是否全屏
let isMaximized = await eagle.window.isMaximized();

setAspectRatio(aspectRatio)

这将使窗口保持长宽比。

  • aspectRatio Float - 保持的宽高比(宽 / 高)
  • 返回 Promise<>
await eagle.window.setAspectRatio(16/9);        // 将窗口宽高比例限制为 16:9

setBackgroundColor(backgroundColor)

设置窗口的背景颜色。

  • backgroundColor String - 此参数表示您所希望的背景色的HEX代码。
  • 返回 Promise<>
await eagle.window.setBackgroundColor("#FFFFFF");

说明:注1:此属性可以直接在 manifest.json 进行设置。 注2:这个设定主要用来设定在 HTML / CSS 内容尚未完成前,窗口默认的背景颜色,适当的设定可以避免发生窗口显示出现闪烁的状况。


setSize(width, height)

设置窗口大小

  • width Integer - 窗口宽度
  • height - Integer - 窗口高度
  • 返回 Promise<>
await eagle.window.setSize(720, 480);

说明:注:此属性可以直接在 manifest.json 进行设置。

getSize()

取得窗口大小

  • 返回 Promise<Integer[]>
await eagle.window.getSize();

setBounds(bounds)

调整窗口的大小并将其移动到提供的边界。任何未提供的属性将默认为当前值。

await eagle.window.setBounds({ x: 440, y: 225, width: 800, height: 600 })

getBounds()

取得窗口边界

  • 返回 Promise<Rectangle[]> - 窗口边界的物件
await eagle.window.getBounds()

setResizable(resizable)

设置窗口是否支持调整大小

  • resizable boolean - 是否支持调整大小
  • 返回 Promise<>
await eagle.window.setResizable(true);
await eagle.window.setResizable(false);

说明:注:此属性可以直接在 manifest.json 进行设置。


isResizable()

窗口是否支持调整大小

  • 返回 Promise<resizable: boolean>
  • resizable boolean
let isResizable = await eagle.window.isResizable();

setAlwaysOnTop(flag)

设置窗口是否应始终显示在其他窗口的前面。

  • flag boolean
  • 返回 Promise<>
await eagle.window.setAlwaysOnTop(true);
await eagle.window.setAlwaysOnTop(false);

isAlwaysOnTop()

窗口是否应始终显示在其他窗口的前面

  • 返回 Promise<alwaysOnTop: boolean>
  • alwaysOnTop boolean
let isAlwaysOnTop = await eagle.window.isAlwaysOnTop();

setPosition(x, y)

将窗口移动到 x 和 y。

  • x Integer
  • y Integer
  • 返回 Promise<>
await eagle.window.setPosition(100, 200);

getPosition()

取得插件窗口座标 x 和 y。

  • 返回 Promise<position: Integer[]>
  • position Integer[]
    • x - position[0]
    • y - position[1]
let position = await eagle.window.getPosition();    // [100, 200]

setOpacity(opacity)

设置窗口的不透明度, 超出界限的数值被限制在[0, 1] 范围内。

  • opacity number - 介于0.0 ( 完全透明 ) 和1.0 ( 完全不透明 ) 之间
  • 返回 Promise<>
await eagle.window.setOpacity(0.5);

getOpacity()

取得窗口透明度,介于0.0 (完全透明) 和1.0 (完全不透明) 之间。

  • 返回 Promise<opacity: number>
  • opacity number
let opacity = await eagle.window.getOpacity();

flashFrame(flag)

启动或停止闪烁窗口, 以吸引用户的注意。

  • flag boolean - 是否闪烁
  • 返回 Promise<>
await eagle.window.flashFrame(true);
await eagle.window.flashFrame(false);

setIgnoreMouseEvents(ignore)

忽略窗口内的所有鼠标事件。在此窗口中发生的所有鼠标事件将被传递到此窗口下面的窗口,但如果此窗口具有焦点,它仍然会接收键盘事件。

  • ignore boolean - 是否忽略鼠标事件
  • 返回 Promise<>
await eagle.window.setIgnoreMouseEvents(true);
await eagle.window.setIgnoreMouseEvents(false);

说明:搭配 setAlwaysOnTop() 功能,将可以创建一个悬浮在屏幕最上方且可穿透鼠标点击的特殊窗口。

capturePage(rect)

撷取 rect 指定区域的页面快照。省略 rect 将捕获整个可见页面。

  • rect object - 可选,截图范围
  • x number
  • y number
  • width number
  • height number
  • 返回 Promise<[NativeImage](https://www.electronjs.org/docs/latest/api/native-image)>
const image = await eagle.window.capturePage();
const base64 = image.toDataURL("image/jpeg");

const image2 = await eagle.window.capturePage({ x: 0, y: 0, width: 100, height: 50 });
const buffer = image2.toPNG();

setReferer(url)

函数用来配置当前的引用来源网址(referer URL)。当您配置了引用来源后,后续的请求都会使用这个配置的引用来源。

  • url 文本 - 引用来源的网址
  • 返回 void
eagle.window.setReferer("https://cn.eagle.cool");