Skip to content

Commit 6410dc4

Browse files
authored
Merge pull request #1381 from haoxiuwen/doc-v2
Modify Flutter Quickstart
2 parents 356b43e + 3cdbab5 commit 6410dc4

File tree

8 files changed

+4854
-4876
lines changed

8 files changed

+4854
-4876
lines changed

docs/.vuepress/sidebar/document.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ const documentSidebar = [
392392
{ text: '修改消息', link: 'message_modify.html' },
393393
{
394394
text: '消息翻译',
395+
collapsible: true,
395396
children: [
396397
{ text: '翻译消息内容', link: 'message_translation_text.html' },
397398
{ text: '获取翻译语言列表', link: 'message_translation_language_list.html' },

docs/document/flutter/quickstart.md

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ class _MyHomePageState extends State<MyHomePage> {
9898
9999
ScrollController scrollController = ScrollController();
100100
String _username = "";
101-
String _password = "";
101+
String _token = "";
102102
String _messageContent = "";
103103
String _chatId = "";
104104
final List<String> _logText = [];
@@ -127,8 +127,8 @@ class _MyHomePageState extends State<MyHomePage> {
127127
onChanged: (username) => _username = username,
128128
),
129129
TextField(
130-
decoration: const InputDecoration(hintText: "Enter password"),
131-
onChanged: (password) => _password = password,
130+
decoration: const InputDecoration(hintText: "Enter token"),
131+
onChanged: (token) => _token = token,
132132
),
133133
const SizedBox(height: 10),
134134
Row(
@@ -158,18 +158,6 @@ class _MyHomePageState extends State<MyHomePage> {
158158
),
159159
),
160160
),
161-
const SizedBox(width: 10),
162-
Expanded(
163-
child: TextButton(
164-
onPressed: _signUp,
165-
child: const Text("SIGN UP"),
166-
style: ButtonStyle(
167-
foregroundColor: MaterialStateProperty.all(Colors.white),
168-
backgroundColor:
169-
MaterialStateProperty.all(Colors.lightBlue),
170-
),
171-
),
172-
),
173161
],
174162
),
175163
const SizedBox(height: 10),
@@ -218,9 +206,6 @@ class _MyHomePageState extends State<MyHomePage> {
218206
void _signOut() async {
219207
}
220208
221-
void _signUp() async {
222-
}
223-
224209
void _sendMessage() async {
225210
}
226211
@@ -243,9 +228,9 @@ class _MyHomePageState extends State<MyHomePage> {
243228

244229
```dart
245230
void _initSDK() async {
246-
EMOptions options = EMOptions(
247-
appKey: "<#Your AppKey#>",
248-
autoLogin: false,
231+
EMOptions options = EMOptions.withAppKey(
232+
"<#Your AppKey#>",
233+
autoLogin: false,
249234
);
250235
await EMClient.getInstance.init(options);
251236
// 通知 SDK UI 已准备好。该方法执行后才会收到 `EMChatRoomEventHandler`、`EMContactEventHandler` 和 `EMGroupEventHandler` 回调。
@@ -259,19 +244,20 @@ void _initSDK() async {
259244

260245
在生产环境中,为了安全考虑,你需要在你的应用服务器集成 [获取 App Token API](/document/server-side/easemob_app_token.html)[获取用户 Token API](/document/server-side/easemob_user_token.html) 实现获取 Token 的业务逻辑,使你的用户从你的应用服务器获取 Token。
261246

247+
262248
### 添加登录
263249

264250
`_signIn` 方法中添加登录代码。
265251

266252
```dart
267253
void _signIn() async {
268-
if (_username.isEmpty || _password.isEmpty) {
269-
_addLogToConsole("username or password is null");
254+
if (_username.isEmpty || _token.isEmpty) {
255+
_addLogToConsole("username or token is null");
270256
return;
271257
}
272258
273259
try {
274-
await EMClient.getInstance.login(_username, _password);
260+
await EMClient.getInstance.loginWithToken(_username, _token);
275261
_addLogToConsole("sign in succeed, username: $_username");
276262
} on EMError catch (e) {
277263
_addLogToConsole("sign in failed, e: ${e.code} , ${e.description}");
@@ -445,18 +431,3 @@ flutter run
445431
运行结果如下:
446432

447433
<img src="/images/flutter/simulator_screen_shot1.png" width="500" />
448-
449-
参考以下步骤发送和接收文本消息:
450-
451-
1. 输入任意用户名(如 `flutter001``flutter002`)和密码 `1`,点击 `SIGN UP` 创建用户;
452-
2.`flutter001` 身份登录 Demo,将 `Enter the username you want to send` 输如为 `flutter002`, 发送文本消息;
453-
454-
<img src="/images/flutter/simulator_screen_shot2.png" width="500" />
455-
456-
3.`flutter002` 身份登录 Demo,查看 Log 信息确认是否都到消息。
457-
458-
<img src="/images/flutter/simulator_screen_shot3.png" width="500" />
459-
460-
## 后续步骤
461-
462-
为保障通信安全,在正式生产环境中,你需要在自己的 app 服务端生成 Token。详见[使用 App Token 鉴权](/product/easemob_app_token.html)

docs/document/server-side/message_translation_detect.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,13 @@ POST https://{host}/{org_name}/{app_name}/translate/detect
5757
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体的 `data` 中包含以下字段:
5858

5959
| 参数 | 类型 | 描述 |
60-
| :-------------- | :----- | :------- | --------------------------------- |
60+
| :-------------- | :----- | :------- |
6161
| `language` | String | 检测出的文本的目标语言。 |
6262
| `score` | Int | 检测出的语言与实际相符的可能性。 |
6363
| `isTranslationSupported` | String | 是否支持翻译该类语言的文本:<br/> - `true`:支持 <br/> - `false`:不支持 |
6464

65+
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](error.html) 了解可能的原因。
66+
6567
## 示例
6668

6769
### 请求示例

docs/document/server-side/message_translation_language_list.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
## HTTP 请求
2727

2828
```http
29-
POST https://{host}/{org_name}/{app_name}/translate/support/language
29+
GET https://{host}/{org_name}/{app_name}/translate/support/language
3030
```
3131

3232
### 路径参数
@@ -50,19 +50,19 @@ POST https://{host}/{org_name}/{app_name}/translate/support/language
5050
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段:
5151

5252
| 参数 | 类型 | 描述 |
53-
| :-------------- | :----- | :------- | --------------------------------- |
53+
| :-------------- | :----- | :------- |
5454
| `code` | String | 语言代码。 |
5555
| `name` | String | 语言名称。 |
5656
| `nativeName` | String | 语言在其起源地的名称,例如,英语在英国称为 `English`|
5757

58-
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](error.html) 了解可能的原因。
58+
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](error.html) 了解可能的原因。
5959

6060
## 示例
6161

6262
### 请求示例
6363

6464
```shell
65-
curl -i -X POST "https://XXXX/XXXX/XXXX/translate/support/language" \
65+
curl -X GET "https://XXXX/XXXX/XXXX/translate/support/language" \
6666
-H "Authorization: Bearer <YourAppToken>"
6767
```
6868

docs/document/server-side/message_translation_text.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,19 @@ POST https://{host}/{org_name}/{app_name}/translate
6464
如果返回的 HTTP 状态码为 `200`,表示请求成功,响应包体中包含以下字段:
6565

6666
| 参数 | 类型 | 描述 |
67-
| :-------------- | :----- | :------- | --------------------------------- |
67+
| :-------------- | :----- | :------- |
6868
| `translations` | JSON Array | 翻译结果。 |
6969
| - `text` | String | 翻译后的文本。 |
7070
| - `to` | String | 翻译目标语言的代码。|
7171

72-
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [响应状态码](error.html) 了解可能的原因。
72+
如果返回的 HTTP 状态码非 `200`,表示请求失败。你可以参考 [错误码](error.html) 了解可能的原因。
7373

7474
## 示例
7575

7676
### 请求示例
7777

7878
```shell
79-
curl -i -X POST "https://XXXX/XXXX/XXXX/translate" \
79+
curl -X POST "https://XXXX/XXXX/XXXX/translate" \
8080
-H 'Content-Type: application/json' \
8181
-H "Authorization: Bearer <YourAppToken>" \
8282
-d '{

docs/product/limitationapi.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ API 限流周期按照 UTC 时间计算,即当日的 00:00:00 至次日的 00:
4343
| * 批量撤回消息 | POST | /{org_name}/{app_name}/messages/batch_recall | 100 次/秒/App Key | 100 次/秒 |
4444
| 服务端单向删除会话 | DELETE | /{org_name}/{app_name}/users/{userName}/user_channel | 5 次/分钟/单用户 ID,100 次/秒/App Key | 100 次/秒 |
4545
| 修改消息 | PUT | /{org_name}/{app_name}/messages/rewrite/{msg_id} | 100 次/秒/App Key | 50 条/秒 |
46+
| 翻译消息内容 | POST | /{org_name}/{app_name}/translate | 100 次/秒/App Key | 50 条/秒 |
47+
| 获取翻译语言列表 | GET | /{org_name}/{app_name}/translate/support/language | 100 次/秒/App Key | 50 条/秒 |
48+
| 检测文本的源语言 | POST | /{org_name}/{app_name}/translate/detect | 100 次/秒/App Key | 50 条/秒 |
4649
| 根据消息 ID 单向删除单聊漫游消息 | DELETE | /{org_name}/{app_name}/rest/message/roaming/chat/user/{userId}?userId={userId}&msgIdList={msgIdList} | 100 次/秒/App Key | 50 次/秒 |
4750
| 根据消息 ID 单向删除群聊漫游消息 | DELETE | /{org_name}/{app_name}/rest/message/roaming/group/user/{userId}?groupId={groupId}&msgIdList={msgIdList} | 100 次/秒/App Key | |
4851
| 单向清空指定用户的漫游消息 | POST | /{org_name}/{app_name}/rest/message/roaming/user/{userId}/delete/all | 100 次/秒/App Key | 100 次/秒 |

docs/product/product_dynamics.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# 产品动态
22

3+
## 2025-07
4+
5+
| 动态名称 | 动态描述 | 发布时间 | 相关文档 |
6+
| :----- | :------- | :---------------- | :---------------- |
7+
| 消息翻译 RESTful API | 消息翻译支持以下三个 RESTful API:<br/> - 翻译消息内容 <br/> - 获取翻译语言列表 <br/> - 检测文本的源语言 | 2025-7-2 | <br/> - [翻译消息内容](/document/server-side/message_translation_text.html) <br/> - [获取翻译语言列表](/document/server-side/message_translation_language_list.html) <br/> - [检测文本的源语言](/document/server-side/message_translation_detect.html) |
8+
39
## 2025-06
410

511
#### Android/iOS SDK 4.15.1 发版

0 commit comments

Comments
 (0)