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
。
- name:
返回值
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
。
- [closeMode]:
返回值
void
。
根据窗口 ID 关闭窗口。
closeWindowByName
winService.closeWindowByName(name[,options])
参数
- name:
string
,窗口名。 - [options]:
object
,关闭模式。- [closeMode]:
'close' | 'confirmOrClose'
,当closeMode=close
时,会直接关闭,忽略回调。当closeMode=confirmOrClose
,如果有确认回调,会执行确认回调,默认为:confirmOrClose
。
- [closeMode]:
返回值
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()
之后,这会初始化所有服务。