rerumaccusamus
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
76 lines (55 loc) • 1.76 kB
Markdown
---
sidebar_position: 3
---
在渲染进程中,注册的服务,一般有如下两种场景:
- 注册服务,供主进程访问。
- 注册服务,供渲染进程(webview)访问。
两者注册的服务内容不一样,面向的访问对象也不一样。
这种场景下,我们通过 `winService` 进行注册服务。
```ts title='services/index.ts'
export const getPageLocation = () => {
return window.location.href;
}
```
```ts title="xx/xx.tsx(渲染进程)"
// 渲染进程中
import { winService } from '@modern-js/runtime/electron-render';
import * as services from './services';
...
winService.registerServices(services);
```
```ts title="electron/services/index.ts(主进程)"
// 主进程中
import { winService } from '@modern-js/runtime/electron-main';
export const getPageLocationOfMainWindow = () => {
return winService.callBrowserWindow('getPageLocation');
}
```
这种场景下,我们通过 `webviewService` 进行注册服务。
```ts title='services/index.ts'
export const getWindowName = () => {
return 'main';
}
```
```ts title="xx/xx.tsx(渲染进程)"
// 渲染进程中
import { webviewService } from '@modern-js/runtime/electron-render';
import * as services from './services';
...
webviewService.registerServices(services);
```
```ts title="xx/xx.tsx(webview 进程)"
// webview 进程中
import webviewBridge from '@modern-js/runtime/electron-webview';
...
webviewBridge.callBrowserWindow('getWindowName');
```