---
title: "initialize"
description: "创建 Kasumi 请求总线并安装 WebView 消息传输层。"
---


> 创建 Kasumi 请求总线并安装 WebView 消息传输层。

## 签名

```ts
KSM.initialize(transport?: KSMTransport): void
KSM.init(transport?: KSMTransport): void
```

`init()` 是兼容别名，行为与 `initialize()` 完全相同。

## 平台与权限

| Windows | Android |权限 |
| --- | --- | --- |
|支持 |支持 |无 |

## 参数

|参数 |类型 |必填 |说明 |
| --- | --- | --- | --- |
| `transport` | `KSMTransport` |否 |自定义消息传输；省略时创建 `KSMWebMessageTransport` |

默认传输会依次查找 `window.chrome.webview` 和 `window.ksm`，并提供同窗口
`message` 事件监听。

## 返回值

`void`。初始化是同步操作，不代表宿主已经能够处理命令；需要确认通路时继续调用
[ping](/docs/kasumi/api/core/ping)。

## 行为

- 重复调用会先销毁旧总线，再创建新总线。
- 旧总线的未完成请求会被拒绝，旧事件监听和能力缓存会被清除。
- 新总线会监听 `webview.reloaded`，用于 WebView 重建后的能力刷新与订阅恢复。
- 初始化本身不会自动查询能力，也不会自动订阅普通事件。

## 示例

```ts
import {
  KSM,
  KSMWebMessageTransport
} from '@kasumi/bridge';

KSM.initialize(new KSMWebMessageTransport());
await KSM.ping();
```

## 错误

|场景 |错误 |
| --- | --- |
|默认 WebView 传输不存在 |普通 `Error` |
|自定义传输构造失败 |由自定义传输抛出的错误 |
|重复初始化 |不报错，旧桥接被替换 |

## 相关

- [dispose](/docs/kasumi/api/core/dispose)
- [ping](/docs/kasumi/api/core/ping)
- [types](/docs/kasumi/api/types)