跳转到主文档

winService

补充信息
  • 窗口管理服务。
  • 使用进程:主进程
import { winService } from '@modern-js/runtime/electron-main';

实例方法

callBrowserWindow

winService.callBrowserWindow(receiver, funcName[, ...args])

参数

  • receiver:number | string,接收窗口 ID 或者窗口名。
  • funcName:string,访问的服务的函数名。
  • [args]any[],访问服务函数的参数。

返回值

  • Promise<any>,服务访问结果。
警告

receiver 为窗口名,并且同名窗口打开多个,此时 callBrowserWindow 的返回值为数组,每一项表示每一个窗口的执行结果。

broadCast

winService.broadcast(channel[,...args])

参数

  • channel:string,广播频道名。
  • [args]any[],广播参数。

返回值

  • void

给所有窗口在 channel 频道上发送消息。

getWindowById

winService.getWindowById(windowId)

参数

  • windowId:number,窗口 ID。

返回值

  • object | undefined,返回窗口对象。

根据窗口 ID 获取窗口对象。

getWindows

winService.getWindows()

返回值

  • object[],返回窗口对象数组。

获取所有窗口对象。

sendTo

winService.sendTo(receiver,channel[,...args])

参数

  • receiver:number | string,接收窗口 ID 或者窗口名。
  • channel:string,通信频道名。
  • [args]any[],访问服务函数的参数。

返回值

  • void

根据窗口名字或者窗口 ID 发送消息到 channel 频道。

createWindow

winService.createWindow(openConfig)

参数

  • openConfig:object,窗口配置。
    • name:string,需要打开的窗口名。
    • [options]BrowserWindowConstructorOptions,窗口的相关配置。
    • [loadUrl]string,加载路径。
    • [addBeforeCloseListener]boolean,同windowConfig#addBeforeCloseListener,默认为 false
    • [hideWhenClose]boolean,关闭窗口时,是否以隐藏代替关闭,默认为 false

返回值

  • object,返回窗口对象。

打开窗口。

getWindowConfig

winService.getWindowConfig(name)

参数

  • name:string,窗口名。

返回值

  • object | undefined,窗口配置。

通过窗口名获得窗口配置。

closeWindowById

winService.closeWindowById(id[,options])

参数

  • id:number,窗口 ID。
  • [options]object,关闭模式。
    • [closeMode]'close' | 'confirmOrClose',当 closeMode=close 时,会直接关闭,忽略回调。当 closeMode=confirmOrClose,如果有确认回调,会执行确认回调,默认为:confirmOrClose

返回值

  • void

根据窗口 ID 关闭窗口。

closeWindowByName

winService.closeWindowByName(name[,options])

参数

  • name:string,窗口名。
  • [options]object,关闭模式。
    • [closeMode]'close' | 'confirmOrClose',当 closeMode=close 时,会直接关闭,忽略回调。当 closeMode=confirmOrClose,如果有确认回调,会执行确认回调,默认为:confirmOrClose

返回值

  • void

根据窗口名关闭窗口。

提示

关于 closeMode,同上方 closeWindowById

getWindowByName

winService.getWindowByName(name)

参数

  • name:string,窗口名。

返回值

  • object[],窗口对象数组。

根据窗口名获得其对应配置。

示例

// in main process
import { winService } from '@modern-js/electron-runtime';
...

// 向窗口 main 发送消息 `{data: "hello"}` 到 `msgChannel` 频道。
winService.call('main', 'msgChannel', {data: "hello"});

// 向所有窗口发送消息 `{data: "hello"}` 到 `msgChannel` 频道。
winService.broadCast('msgChannel', {data: "hello"});
警告

你可以直接引用各种服务,比如:winService,但使用必须在 await runtime.init() 之后,这会初始化所有服务。