Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/.vuepress/public/images/applet/service_overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/.vuepress/public/images/common/multidevice_device_count.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/.vuepress/sidebar/callkit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ const callKitSidebar = [
{ text: "常见问题", link: "common_issue.html" },
]
},
{ text: "更新日志", link: "releasenote.html" },
{ text: "设计指南", link: "design_guide.html" },
{ text: "历史文档", link: "easecallkit.html" }
];
Expand Down
20 changes: 20 additions & 0 deletions docs/callkit/android/releasenote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Android CallKit 更新日志

## 版本 4.16.0 2025-08-29

从该版本开始,Android CallKit 源码使用 Kotlin 语言开发,代码迁移至 [新 repo](https://github.com/easemob/easemob-callkit-android),老版本不再维护。

该版本的 CallKit 主要变更如下:
1. 优化了 [单群聊音视频通话的 UI 界面](product_overview.html#界面效果)。
2. 采用 MVVM 框架设计抽离各个模块的代码,职责分离。
功能模块主要包括:
- `RtcManager`: 管理具体音视频
- `SignalingManager`: 管理信令交互
- `AudioController`: 管理铃声
- `FloatWindow` 和 `IncomingCallTopWindow`: 管理悬浮窗
- `CallKitCache`: 管理缓存
- `CallKitNotifier`: 管理通知
3. 合并信令,由原来三个地方合并为一处。解决了 Activity 被回收导致信令不通问题。
4. 在应用集成了 FCM 推送的设备上,当应用进程被杀死时,支持 [使用 Telecom](telecom.html) 唤起设备,实现系统级丝滑呼叫体验。
5. [群组通话的邀请界面](integration.html#步骤-5-发起通话) 改为 CallKit 内部实现,不再需要开发者自己实现。
6. 移除 App Server 的依赖,直接由 CallKit 内部从 SDK 中获取 RTC App ID、rtcToken、UID 和 userID 映射关系等。
13 changes: 13 additions & 0 deletions docs/callkit/ios/releasenote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# iOS CallKit 更新日志

## 版本 4.16.0 2025-08-29

从该版本开始,iOS CallKit 源码使用 Swift 语言开发,并且支持 iOS 15.0 及以上版本,代码迁移至 [新 repo](https://github.com/easemob/easemob-callkit-iOS)。老版本不再维护。

该版本的 CallKit 主要变更如下:
1. 优化了 [单群聊音视频通话的 UI 界面](product_overview.html#界面效果)。
2. 单人视频通话支持[画中画](picture_in_picture.html)。
3. 被叫离线时,支持 [使用 LiveCommunicationKit 进行呼叫](livecommunicationkit.html)。
4. 优化了 [群组通话的呼叫信令交互](signaling.html#群组通话信令交互流程)。
5. [群组通话的邀请界面](integration.html#发起群组通话) 改为 UIKit 内部实现,不再需要开发者自己实现。
6. 通话使用的声网 RTC App ID 及 Token 在 CallKit 内部通过 IM SDK 接口获取,不再依赖 App Server。
12 changes: 12 additions & 0 deletions docs/callkit/web/releasenote.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# CallKit 更新日志

## 版本 2.0.1 2025-08-29

从该版本开始,CallKit 移到 `easemob-chat-uikit` 中,为 UIKit 的中的一个组件,代码迁移至 [新 repo](https://github.com/easemob/easemob-uikit-react),老版本不再维护。

该版本的 CallKit 主要变更如下:

1. 优化了 [单群聊音视频通话的 UI 界面](product_overview.html#界面效果)。
2. 优化了群组通话的呼叫信令交互。
3. [群组通话的邀请界面](integration.html#发起群组通话) 改为 UIKit 内部实现,不再需要开发者自己实现。
4. 通话使用的声网 RTC App ID 及 Token 在 CallKit 内部通过 IM SDK 接口获取,不再依赖 App Server。
2 changes: 1 addition & 1 deletion docs/document/android/connection.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,4 @@ EMClient.getInstance().removeConnectionListener(connectionListener);
- 用户在另一设备登录,将当前设备上登录的用户踢出,提示错误码 206。
- 用户登录设备数量超过限制,提示错误码 214。
- 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限,提示错误码 8。
- 开启多设备服务后,用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录(错误码 217)。
- 开启多设备服务后,用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录(错误码 217)。
6 changes: 3 additions & 3 deletions docs/document/android/error.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Android 中错误码的类为 [EMError](https://sdkdocs.easemob.com/apidoc/andro
| 3 | DATABASE_ERROR | 数据库操作失败:打开本地数据库失败。 | 需要根据调用的 API 结合日志分析,如果使用 `EMConversation#updateMessage` 方法更新一条本地不存在的消息,可能返回该错误;在数据库未打开时,调用其他本地数据库操作,也可能返回该错误。|
| 4 | EXCEED_SERVICE_LIMIT | 超过服务限制:超过当前服务版本的数量限制,例如,创建的用户 ID 数量超过购买服务的限制时提示该错误;设置和获取用户属性的接口,包括 [设置当前用户的属性](userprofile.html#设置当前用户的所有属性)、[获取用户的所有属性](userprofile.html#获取用户的所有属性) 和 [获取用户的指定属性](userprofile.html#获取用户的指定属性),超过调用频率限制时,会上报该错误。 | 检查调用的 API,若传入 `limit` 参数,可将该参数控制在限制内,如果是限流导致,可以在延后一段时间重新调用。 |
| 8 | APP_ACTIVE_NUMBER_REACH_LIMITATION | 应用程序的日活跃用户数量(DAU)或月活跃用户数量(MAU)达到上限。 | 需在[环信控制台](https://console.easemob.com/user/login)对 IM 服务进行升级。 |
| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用详情** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 |
| 100 | INVALID_APP_KEY | App Key 不合法:用户的 App Key 格式不正确。可在[环信控制台](https://console.easemob.com/user/login)的 **应用概览** 页面查看 App Key。 | 使用正确的 App Key 进行初始化。 |
| 101 | INVALID_USER_NAME | 用户 ID 不正确:一般情况下,用户 ID 为空时提示该错误,例如,邀请好友时 username 参数为空字符。 | 检查报错的 API 中传入的用户 ID 参数是否为空。|
| 102 | INVALID_PASSWORD | 用户密码不正确:登录时提供的密码为空或不正确。 | 检查调用的 API 中传入的密码参数是否正确。 |
| 103 | INVALID_URL | URL 不正确。 | 检查调用 API 时传入的参数是否正确。 |
Expand All @@ -42,11 +42,11 @@ Android 中错误码的类为 [EMError](https://sdkdocs.easemob.com/apidoc/andro
| 214 | USER_LOGIN_TOO_MANY_DEVICES | 用户登录设备数超过限制:该错误在多设备自动登录场景中且打开不踢掉其他设备上的登录的开关时超过登录设备数量的限制才会出现。例如,用户最多可同时登录 4 台设备, A(开启了自动登录)、B、C 和 D。最初,用户在这四个设备上均为登录状态,但由于网络连接原因登出了设备 A,然后手动登录了设备 E。这种情况下,设备 A 的网络恢复正常时会自动登录,这时登录失败且提示该错误。 | 可增加同时在线的设备数量,或先使用 `EMClient#kickDeviceWithToken` 踢掉其他设备再登录。 |
| 215 | USER_MUTED | 用户在群组或聊天室中被禁言:用户被禁言后发送消息时提示该错误。 | 用户在群组/聊天室内被禁言情况下,不能发送消息,可在 UI 上限制。 |
| 216 | USER_KICKED_BY_CHANGE_PASSWORD | 用户密码更新:当前登录的用户密码被修改后,当前登录会断开并提示该错误。 | 密码更新会收到回调 `EMConnectionListener#onLogout`,需要在收到该回调时,调用 `EMClient#logout` 方法,并回到登录页面。|
| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者管理后台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调 `EMConnectionListener#onLogout`。收到该回调时,需调用 `EMClient#logout` 方法,并回到登录页面。|
| 217 | USER_KICKED_BY_OTHER_DEVICE | 用户被踢下线:开启多设备服务后,如果用户在其他设备上通过调用 API 或者环信控制台将当前设备登录的 ID 强制退出登录,SDK 会提示该错误。 | 被踢设备会收到回调 `EMConnectionListener#onLogout`。收到该回调时,需调用 `EMClient#logout` 方法,并回到登录页面。|
| 218 | USER_ALREADY_LOGIN_ANOTHER | 其他用户已登录:用户在同一台设备上退出登录前又使用另一账户登录。 | 如果在已登录情况下,要登录另一个账号,需要先调用 `EMClient#logout` 退出账号。 |
| 219 | USER_MUTED_BY_ADMIN | 用户被禁言:用户被全局禁言后发送消息时提示该错误。 | 在群组/聊天室开启全员禁言的情况下,不能发送消息,可在 UI 上限制。 |
| 220 | USER_DEVICE_CHANGED | 用户的登录设备与上次不一致。该错误在单设备自动登录场景中且打开不踢掉其他设备上的登录的开关时才会出现。例如,用户自动登录设备 A,之后手动登录设备 B。用户再次自动登录设备 A 时登录失败且提示该错误。 |登录失败的设备会收到 `EMConnectionListener#onLogout` 事件。收到该事件时,需调用 `EMClient#logout` 方法,并回到登录页面。 |
| 221 | USER_NOT_ON_ROSTER | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的**即时通讯 > 服务概览**页面的**设置**区域开启好友关系检查功能。| 需要先调用 `EMContactManager#addContact` 方法添加好友。对方同意好友请求后,才能发送消息。 |
| 221 | USER_NOT_ON_ROSTER | 非好友禁止发消息:开通非好友禁止发消息后,非好友间发消息提示此错误。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面开启好友关系检查功能。| 需要先调用 `EMContactManager#addContact` 方法添加好友。对方同意好友请求后,才能发送消息。 |
| 300 | SERVER_NOT_REACHABLE | 服务器不可达:例如,发送或撤回消息时,如果 SDK 与消息服务器未保持连接,会返回该错误;操作群组、好友等请求时因网络不稳定导致失败,也会返回该错误。 | 调用登录 API 返回该错误码,可能是由于网络受限,或域名被封禁,可尝试切换设备网络。如果用户在沙特/菲律宾等地区,需要联系商务,开启 dnsconfig中 TLS 加密。其他操作返回该错误码,一般是网络问题,可在切换网络或延迟一段时间后重新调用。 |
| 301 | SERVER_TIMEOUT | 请求服务超时:如果调用 API 在特定时间内服务器未响应则返回该错误,一般为 30 秒或 60 秒。 | 一般是网络问题,可在切换网络或延迟一段时间后重新调用 API。 |
| 302 | SERVER_BUSY | 服务器忙碌:服务器当前忙碌会返回该错误,建议稍后再尝试请求。 |检查调用的 API 是否重复调用。如果在上次调用后,结果未返回时重复调用 API,可能返回该错误码。 |
Expand Down
6 changes: 3 additions & 3 deletions docs/document/android/login.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

1. 可通过以下两种方式调用接口创建用户:

- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。
- 授权注册:通过环信提供的 REST API 注册环信用户账号,注册后保存到你的服务器或返给客户端。要使用授权注册,你需要在[环信控制台](https://console.easemob.com/user/login)的**功能配置 > 基础功能** > **用户** 页面,将**用户注册模式**设置为**授权注册**。相关的 REST API 介绍,详见[授权注册单个用户](/document/server-side/account_system.html#授权注册单个用户)和[批量授权注册用户](/document/server-side/account_system.html#批量授权注册用户)的接口介绍。

- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **服务概览**的**设置**区域,将**用户注册模式**设置为**开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。
- 开放注册:一般在体验 Demo 和测试环境时使用,正式环境中不推荐使用该方式注册环信账号。要使用开放注册,需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置 > 基础功能** > **用户** 页面,将 **用户注册模式** 设置为 **开放注册**。只有打开该开关,才能使用客户端或 [REST API](/document/server-side/account_system.html#开放注册单个用户)开放注册用户。

示例代码如下所示:

Expand All @@ -17,7 +17,7 @@
EMClient.getInstance().createAccount(mAccount, mPassword);// 同步方法。
```

2. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户:
1. 通过 [环信控制台](https://console.easemob.com/user/login) 创建用户:

可以在 [环信控制台](https://console.easemob.com/user/login) 创建正式环境下和测试环境下的用户,详见 [创建用户相关介绍](/product/console/operation_user.html#创建用户)。

Expand Down
2 changes: 1 addition & 1 deletion docs/document/android/message_recall.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- 对于单聊会话,只支持发送方撤回发送成功的消息。若消息过期,撤回失败。
- 对于群组/聊天室会话,普通成员只能撤回自己发送的消息,若消息过期,撤回失败。群主/聊天室所有者和管理员可撤回其他用户发送的消息,即使消息过期也能撤回。
- **除了透传消息,其他各类型的消息都支持撤回**。
- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **功能配置总览** > **基础功能** 页面设置消息撤回时长,该时长不超过 7 天。
- 默认情况下,发送方可撤回发出 2 分钟内的消息。你可以在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页面设置消息撤回时长,该时长不超过 7 天。
- 撤回消息时,服务端的消息(历史消息,离线消息或漫游消息)以及消息发送方和接收方的内存和数据库中的消息均会被移出。
- 对于附件类型消息,包括图片、音频和视频和文件消息,撤回消息后,消息附件也相应删除。

Expand Down
2 changes: 1 addition & 1 deletion docs/document/android/message_receipt.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ EMClient.getInstance().chatManager().removeMessageListener(msgListener);

| 使用限制| 默认 | 描述 |
| :--------- | :----- | :------- |
| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的**即时通讯** > **功能配置** > **功能配置总览**> **基础功能**页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 |
| 功能开通 | 关闭 | 若要使用该功能,你需要在[环信控制台](https://console.easemob.com/user/login)的 **功能配置** > **基础功能** > **消息** 页签下,搜索找到 **消息已读回执(群聊)** 开通功能。具体费用详见 [计费策略](/product/pricing_policy.html#增值服务费用)。 |
| 使用权限 | 所有群成员 | 默认情况下,所有群成员发送消息时可要求已读回执。如果仅需群主和群管理员发消息时要求已读回执,可联系商务修改。 |
| 已读回执有效期 | 3 天 | 群聊已读回执的有效期为 3 天,即群组中的消息发送时间超过 3 天,服务器不记录阅读该条消息的群组成员,也不会发送已读回执。 |
| 群规模 | 200 人 | 该特性最大支持 200 人的群组。如果超过 200 人/群,群成员发送的消息不会返回已读回执。你可以联系商务提升群成员人数上限。 |
Expand Down
6 changes: 3 additions & 3 deletions docs/document/android/multi_device.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
- 子区相关操作;
- 会话相关操作。

多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **基础功能** 页签下点击**多端多设备在线**操作栏中的**设置**,在弹出的对话框中设置各端设备的数量:
多端登录时,即时通讯 IM 每端默认最多支持 4 个设备同时在线。如需增加支持的设备数量,可以联系环信即时通讯 IM 的商务经理。你可以在环信控制台的 **功能配置 > 基础功能** > **用户** 页面,在弹出的对话框中设置各端设备的数量:

![img](/images/common/multidevice_device_count.png)

Expand Down Expand Up @@ -132,13 +132,13 @@ EMClient.getInstance().chatManager().sendMessage(message);

你可以按照以下步骤设置登录设备所属的平台:

1. 在环信控制台的**功能配置** > **功能配置总览**页面,点击**基础功能**页签,然后点击**多端多设备在线**对应的**设置**。在弹出的对话框中点击 **新增自定义平台**,在**添加自定义平台**对话框中设置**设备平台****设备数量**。
1. 在环信控制台的 **功能配置** > **基础功能** > **用户** 页面,在**多端多设备** 区域,点击 **设置**。在弹出的对话框中点击 **新增自定义平台**,在 **添加自定义平台** 对话框中设置 **设备平台****设备数量**。

**设备平台**的取值范围为 [1,100],**设备数量**的取值范围为 [0,4]。

![img](/images/common/multidevice_device_platform.png)

2. 初始化 SDK 时,调用 `EMOptions#setCustomOSPlatform` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的**添加自定义平台**对话框中设置的**设备平台**的值相同。
2. 初始化 SDK 时,调用 `EMOptions#setCustomOSPlatform` 方法自定义设置登录设备的平台。确保该方法中的 `platform` 参数的值与环信控制台的 **添加自定义平台** 对话框中设置的 **设备平台** 的值相同。

:::tip
登录成功后才会将该设置发送到服务器。
Expand Down
2 changes: 1 addition & 1 deletion docs/document/android/push/push_fcm.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ public class MyFCMMSGService extends FirebaseMessagingService {
可以查看日志或调用[获取用户详情的 RESTful 接口](https://doc.easemob.com/document/server-side/account_system.html#获取单个用户的详情)确认 device token 是否绑定成功。成功后在 `entities` 字段下会有 `pushInfo` 字段,且 `pushInfo` 下会有 `device_Id`、`device_token`、`notifier_name` 等相关信息。
2. 开启应用通知栏权限。
3. 杀掉应用进程。
4. 在[环信即时通讯云控制台](https://console.easemob.com/user/login)发送测试消息。
4. 在[环信控制台](https://console.easemob.com/user/login)发送测试消息。
在左侧导航栏中选择 **即时通讯** > **运营服务** > **用户管理**。在**用户管理**页面中,在对应用户 ID 的**操作**栏中点击**更多**,然后选择**发送rest消息**。在弹出的对话框中选择消息类型,输入消息内容,然后点击**发送**。
5. 查看设备是否收到推送通知。

Expand Down
Loading