diff --git a/docs/callkit/android/api_overview.md b/docs/callkit/android/api_overview.md
index 4e6cf44aa..84bfb276e 100644
--- a/docs/callkit/android/api_overview.md
+++ b/docs/callkit/android/api_overview.md
@@ -61,7 +61,7 @@
`CallErrorType` 类中提供三类通话错误类型:
| 通话错误类型 | 描述 |
-|------|------|
+| :------------------- | :----- |
| `BUSINESS_ERROR` | 业务逻辑异常。 |
| `RTC_ERROR` | 音视频异常,详见 [声网 RTC 错误码](https://doc.shengwang.cn/doc/rtc/android/error-code)。 |
| `IM_ERROR` | 即时通讯 IM 异常,详见 [环信即时通讯 IM 错误码](/document/android/error.html) |
@@ -71,7 +71,7 @@
`CALL_BUSINESS_ERROR` 类中提供三类业务错误类型:
| 业务错误类型 | 描述 |
-|------|------|
+| :------------------- | :----- |
| `CALL_STATE_BUSY_ERROR` | 通话状态错误: 调用呼叫 API 时,当前设备不处于空闲状态。|
| `CALL_PARAM_ERROR` | 参数错误:主要为呼叫 API 调用参数错误为空等。 |
| `CALL_SIGNALING_ERROR` | 信令错误:大多为信令回复的方法中某些参数错误,例如,对方发的信令里缺少某种参数。 |
diff --git a/docs/callkit/android/design_guide.md b/docs/callkit/android/design_guide.md
index 7fca5d6aa..4235a775a 100644
--- a/docs/callkit/android/design_guide.md
+++ b/docs/callkit/android/design_guide.md
@@ -2,7 +2,7 @@
-环信通话套件人机交互界面工具包基于环信移动端单/群聊人机交互界面工具包进行设计,设计原则、全局样式、小控件样式均复用自环信单/群聊人机交互界面工具包,详见 [单/群聊人机交互界面工具包](https://doc.easemob.com/uikit/chatroomuikit/android/design_guide.html)。
+环信通话套件人机交互界面工具包基于环信移动端单/群聊人机交互界面工具包进行设计,设计原则、全局样式、小控件样式均复用自环信单/群聊人机交互界面工具包,详见 [单/群聊人机交互界面工具包](/uikit/chatuikit/android/chatuikit_design_guide.html)。
## 总设计原则
@@ -513,7 +513,7 @@ Message Bubble(Large Radius)
-关于通话相关消息样式(Call Msg),详见 [单/群聊人机交互界面工具包](/uikit/chatroomuikit/android/design_guide.html)。
+关于通话相关消息样式(Call Msg),详见 [单/群聊人机交互界面工具包](/uikit/chatuikit/android/chatuikit_design_guide.html)。
## 设计资源
diff --git a/docs/callkit/android/integration.md b/docs/callkit/android/integration.md
index c372cbc4b..e2eee5fe2 100644
--- a/docs/callkit/android/integration.md
+++ b/docs/callkit/android/integration.md
@@ -214,7 +214,7 @@ class MainActivity : AppCompatActivity() {
}
```
-### 步骤 4 登录
+### 步骤 4 登录 IM
```kotlin
ChatClient.getInstance().loginWithToken(username, token, object : ChatCallback {
@@ -305,7 +305,7 @@ private fun startGroupCall() {
-### 步骤 5 接听通话
+### 步骤 6 接听通话
当接收到通话邀请时,CallKit 会自动触发 `onReceivedCall` 回调:
1. 弹出通话邀请界面。
diff --git a/docs/callkit/android/product_overview.md b/docs/callkit/android/product_overview.md
index 426d8c5ce..006aa6f01 100644
--- a/docs/callkit/android/product_overview.md
+++ b/docs/callkit/android/product_overview.md
@@ -20,7 +20,7 @@
| :-------------- | :----- | :------- |
| - 一对一语音/视频通话
- 群组语音/视频通话(16 人及以下):通话中邀请他人
- 自定义铃声:支持主叫、被叫、挂断、超时铃声
- 打开/关闭悬浮窗
- 自定义 UI 界面 | - 高画质/高音质音视频
- 离线推送
- 通话质量检测
- 全球互通
- 弱网卡顿优化
- 视频降噪| - 高质量音视频通话
- 完善的 UI 交互
- 支持多平台互联互通
- 离线推送稳定且多样化 |
-## 界面效果展示
+## 界面效果
### 一对一视频通话
diff --git a/docs/callkit/ios/integration.md b/docs/callkit/ios/integration.md
index 4d7d6675f..a182a0e1b 100644
--- a/docs/callkit/ios/integration.md
+++ b/docs/callkit/ios/integration.md
@@ -120,33 +120,7 @@ CallKit 初始化包括如下步骤:
}
```
-### 步骤 3 登录
-
-调用即时通讯 IM SDK 的 `login` 方法传入用户 ID 和 Token 登录 IM。
-
-在生产环境中,为了安全考虑,你需要在你的应用服务器集成 [获取 App Token API](/document/server-side/easemob_app_token.html) 和 [获取用户 Token API](/document/server-side/easemob_user_token.html) 实现获取 Token 的业务逻辑,使你的用户从你的应用服务器获取 Token。
-
-```Swift
- ChatClient.shared().login(withUsername: userId, token: token) { [weak self] userId,error in
- if let error = error {
- self?.showCallToast(toast: "Login failed: \(error.errorDescription ?? "")")
- } else {
- self?.showCallToast(toast: "Login successful")
-//if !userId.isEmpty { //如有需要透传头像昵称请打开
-// let profile = CallUserProfile()
-// profile.id = userId
-// profile.avatarURL = "https://xxxxx"
-// profile.nickname = "\(userId)昵称"
-// CallKitManager.shared.currentUserInfo = profile
-//}
- self?.userIdField.isHidden = true
- self?.tokenField.isHidden = true
- self?.loginButton.isHidden = true
- }
- }
-```
-
-### 步骤 4 配置监听器
+### 步骤 3 配置监听器
你可以调用下面方法来监听 CallKit 中用户相关状态变更的事件和错误。
@@ -244,6 +218,32 @@ extension MainViewController: CallServiceListener {
| `CallEndReasonHandleOnOtherDevice` | 在其他设备接听 |
| `CallEndReasonRemoteDrop` | 通话中断 |
+### 步骤 4 登录 IM
+
+调用即时通讯 IM SDK 的 `login` 方法传入用户 ID 和 Token 登录 IM。
+
+在生产环境中,为了安全考虑,你需要在你的应用服务器集成 [获取 App Token API](/document/server-side/easemob_app_token.html) 和 [获取用户 Token API](/document/server-side/easemob_user_token.html) 实现获取 Token 的业务逻辑,使你的用户从你的应用服务器获取 Token。
+
+```Swift
+ ChatClient.shared().login(withUsername: userId, token: token) { [weak self] userId,error in
+ if let error = error {
+ self?.showCallToast(toast: "Login failed: \(error.errorDescription ?? "")")
+ } else {
+ self?.showCallToast(toast: "Login successful")
+//if !userId.isEmpty { //如有需要透传头像昵称请打开
+// let profile = CallUserProfile()
+// profile.id = userId
+// profile.avatarURL = "https://xxxxx"
+// profile.nickname = "\(userId)昵称"
+// CallKitManager.shared.currentUserInfo = profile
+//}
+ self?.userIdField.isHidden = true
+ self?.tokenField.isHidden = true
+ self?.loginButton.isHidden = true
+ }
+ }
+```
+
### 步骤 5 发起通话
#### 发起一对一通话
diff --git a/docs/callkit/ios/product_overview.md b/docs/callkit/ios/product_overview.md
index a44c64734..ac042249b 100644
--- a/docs/callkit/ios/product_overview.md
+++ b/docs/callkit/ios/product_overview.md
@@ -20,7 +20,7 @@
| :-------------- | :----- | :------- |
| - 一对一语音/视频通话
- 群组语音/视频通话(16 人及以下):通话中邀请他人
- 自定义铃声:支持主叫、被叫、挂断、超时铃声
- 打开/关闭画中画
- 自定义 UI 界面 | - 高画质/高音质音视频
- 离线推送
- 通话质量检测
- 全球互通
- 弱网卡顿优化
- 视频降噪| - 高质量音视频通话
- 完善的 UI 交互
- 支持多平台互联互通
- 离线推送稳定且多样化 |
-## 界面效果展示
+## 界面效果
### 一对一视频通话
diff --git a/docs/callkit/web/integration.md b/docs/callkit/web/integration.md
index d35dafe06..19f490ae4 100644
--- a/docs/callkit/web/integration.md
+++ b/docs/callkit/web/integration.md
@@ -123,8 +123,41 @@ CallKit 组件或重要配置的说明如下:
| chatClient 属性 | 传入 `rootStore.client`,即 Provider 创建的 IM 连接实例。 |
| 信息提供者 | `userInfoProvider` 和 `groupInfoProvider` 用于获取用户和群组的显示信息。 |
+### 步骤 3 配置监听器
-### 步骤 3 登录 IM
+CallKit 组件可以设置回调事件,实现监听 CallKit 内部状态和错误事件。
+
+```tsx
+ {}}
+ onEndCallWithReason={(reason) => {}}
+/>
+```
+
+回调事件说明如下表所示:
+
+| 回调事件 | 参数 | 描述 |
+| --------------------- | ----------------------------------------------- | ------------------------------------------------ |
+| `onCallError` | `(error: CallError)` | 通话过程中发生错误时触发,包含错误类型和详细信息 |
+| `onReceivedCall` | `(callType, userId, ext)` | 收到通话邀请时触发 |
+| `onCallStart` | `(videos: VideoWindowProps[])` | 通话开始时触发 |
+| `onEndCallWithReason` | `(reason: string, callInfo: CallInfo)` | 通话结束原因回调 |
+| `onRemoteUserJoined` | `(userId: string, callType)` | 远程用户加入通话时触发 |
+| `onRemoteUserLeft` | `(userId: string, callType)` | 远程用户离开通话时触发 |
+| `onInvitationAccept` | `(invitation: InvitationInfo)` | 用户接受邀请时触发 |
+| `onInvitationReject` | `(invitation: InvitationInfo)` | 用户拒绝邀请时触发 |
+| `onLayoutModeChange` | `(layoutMode: string)` | 布局模式变化时触发 |
+| `onMinimizedChange` | `(minimized: boolean)` | 最小化状态变化时触发 |
+| `onResize` | `(width, height, deltaX?, deltaY?, direction?)` | 窗口大小调整时触发 |
+| `onDragStart` | `(startPosition: {x, y})` | 开始拖拽时触发 |
+| `onDrag` | `(newPosition: {x, y}, delta: {x, y})` | 拖拽过程中触发 |
+| `onDragEnd` | `(finalPosition: {x, y})` | 拖拽结束时触发 |
+| `onRtcEngineCreated` | `(rtc: any)` | RTC 引擎创建完成时触发,可用于自定义配置 |
+| `onAddParticipant` | `()` | 用户点击添加参与者按钮时触发 |
+
+### 步骤 4 登录 IM
CallKit 内部依赖 IM SDK 进行信令交互,所以在使用 CallKit 之前需要先登录 IM。登录 IM 有两种方式可以选择:
@@ -237,40 +270,6 @@ const App = () => {
export default App;
```
-### 步骤 4 配置监听器
-
-CallKit 组件可以设置回调事件,实现监听 CallKit 内部状态和错误事件。
-
-```tsx
- {}}
- onEndCallWithReason={(reason) => {}}
-/>
-```
-
-回调事件说明如下表所示:
-
-| 回调事件 | 参数 | 描述 |
-| --------------------- | ----------------------------------------------- | ------------------------------------------------ |
-| `onCallError` | `(error: CallError)` | 通话过程中发生错误时触发,包含错误类型和详细信息 |
-| `onReceivedCall` | `(callType, userId, ext)` | 收到通话邀请时触发 |
-| `onCallStart` | `(videos: VideoWindowProps[])` | 通话开始时触发 |
-| `onEndCallWithReason` | `(reason: string, callInfo: CallInfo)` | 通话结束原因回调 |
-| `onRemoteUserJoined` | `(userId: string, callType)` | 远程用户加入通话时触发 |
-| `onRemoteUserLeft` | `(userId: string, callType)` | 远程用户离开通话时触发 |
-| `onInvitationAccept` | `(invitation: InvitationInfo)` | 用户接受邀请时触发 |
-| `onInvitationReject` | `(invitation: InvitationInfo)` | 用户拒绝邀请时触发 |
-| `onLayoutModeChange` | `(layoutMode: string)` | 布局模式变化时触发 |
-| `onMinimizedChange` | `(minimized: boolean)` | 最小化状态变化时触发 |
-| `onResize` | `(width, height, deltaX?, deltaY?, direction?)` | 窗口大小调整时触发 |
-| `onDragStart` | `(startPosition: {x, y})` | 开始拖拽时触发 |
-| `onDrag` | `(newPosition: {x, y}, delta: {x, y})` | 拖拽过程中触发 |
-| `onDragEnd` | `(finalPosition: {x, y})` | 拖拽结束时触发 |
-| `onRtcEngineCreated` | `(rtc: any)` | RTC 引擎创建完成时触发,可用于自定义配置 |
-| `onAddParticipant` | `()` | 用户点击添加参与者按钮时触发 |
-
### 步骤 5 发起通话
#### 发起一对一通话
diff --git a/docs/callkit/web/product_overview.md b/docs/callkit/web/product_overview.md
index 6eb4bdd9a..8c3f28643 100644
--- a/docs/callkit/web/product_overview.md
+++ b/docs/callkit/web/product_overview.md
@@ -17,7 +17,7 @@
| :-------------- | :----- | :------- |
| - 一对一语音/视频通话
- 群组语音/视频通话(16 人及以下):通话中邀请他人
- 自定义铃声:支持主叫、被叫、挂断、超时铃声
- 自定义 UI 界面 | - 高画质/高音质音视频
- 通话质量检测
- 全球互通
- 弱网卡顿优化
- 视频降噪| - 高质量音视频通话
- 完善的 UI 交互
- 支持多平台互联互通
- 离线推送稳定且多样化 |
-## 界面效果展示
+## 界面效果
### 一对一视频通话