Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
350ebfae
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
350ebfae
编写于
8月 11, 2022
作者:
O
openharmony_ci
提交者:
Gitee
8月 11, 2022
浏览文件
操作
浏览文件
下载
差异文件
!7998 【OpenHarmony开源贡献者计划2022】+表格和代码布局不合适
Merge pull request !7998 from 王炸/master
上级
28b532a4
7a651753
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
196 addition
and
178 deletion
+196
-178
zh-cn/application-dev/reference/apis/js-apis-inputmethodengine.md
...plication-dev/reference/apis/js-apis-inputmethodengine.md
+196
-178
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-inputmethodengine.md
浏览文件 @
350ebfae
...
...
@@ -56,9 +56,9 @@ getInputMethodEngine(): InputMethodEngine
**返回值:**
| 类型 | 说明 |
| --------------------------------------- | ------------ |
|
[
InputMethodEngine
](
#InputMethodEngine
)
| 服务端实例。 |
| 类型 | 说明 |
| --------------------------------------- | ------------ |
|
[
InputMethodEngine
](
#InputMethodEngine
)
| 服务端实例。 |
**示例:**
...
...
@@ -76,9 +76,9 @@ createKeyboardDelegate(): KeyboardDelegate
**返回值:**
| 类型 | 说明 |
| ------------------------------------- | ---------------- |
|
[
KeyboardDelegate
](
#KeyboardDelegate
)
| 客户端监听实例。 |
| 类型 | 说明 |
| ------------------------------------- | ---------------- |
|
[
KeyboardDelegate
](
#KeyboardDelegate
)
| 客户端监听实例。 |
**示例:**
...
...
@@ -124,10 +124,10 @@ off(type: 'inputStart', callback?: (kbController: KeyboardController, textInputC
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-type为‘inputStart’时表示订阅输入法绑定。 |
| callback |
[
KeyboardController
](
#KeyboardController
)
,
[
TextInputClient
](
#TextInputClient
)
| 否 | 回调返回输入法操作相关实例。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-type为‘inputStart’时表示订阅输入法绑定。 |
| callback |
[
KeyboardController
](
#KeyboardController
)
,
[
TextInputClient
](
#TextInputClient
)
| 否 | 回调返回输入法操作相关实例。 |
...
...
@@ -147,10 +147,10 @@ on(type: 'keyboardShow'|'keyboardHide', callback: () => void): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyboardShow',表示订阅输入法显示。
<br/>
-
type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void | 否 | 回调函数。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyboardShow',表示订阅输入法显示。
<br/>
-
type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void | 否 | 回调函数。 |
**示例:**
...
...
@@ -170,10 +170,10 @@ off(type: 'keyboardShow'|'keyboardHide', callback?: () => void): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyboardShow',表示订阅输入法显示。
<br/>
-
type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void | 否 | 回调函数。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyboardShow',表示订阅输入法显示。
<br/>
-
type为'keyboardHide',表示订阅输入法隐藏。 |
| callback | void | 否 | 回调函数。 |
**示例:**
...
...
@@ -196,10 +196,10 @@ on(type: 'keyDown'|'keyUp', callback: (event: KeyEvent) => boolean): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyDown',表示订阅硬键盘按下。
<br/>
-
type为'keyUp',表示订阅硬键盘抬起。 |
| callback |
[
KeyEvent
](
#KeyEvent
)
| 是 | 回调返回按键信息。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyDown',表示订阅硬键盘按下。
<br/>
-
type为'keyUp',表示订阅硬键盘抬起。 |
| callback |
[
KeyEvent
](
#KeyEvent
)
| 是 | 回调返回按键信息。 |
...
...
@@ -221,10 +221,10 @@ off(type: 'keyDown'|'keyUp', callback?: (event: KeyEvent) => boolean): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyDown',表示订阅硬键盘按下。
<br/>
-
type为'keyUp',表示订阅硬键盘抬起。 |
| callback |
[
KeyEvent
](
#KeyEvent
)
| 否 | 回调返回按键信息。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------- | ---- | ------------------------------------------------------------ |
| type | string | 是 | 设置监听类型。
<br/>
-
type为'keyDown',表示订阅硬键盘按下。
<br/>
-
type为'keyUp',表示订阅硬键盘抬起。 |
| callback |
[
KeyEvent
](
#KeyEvent
)
| 否 | 回调返回按键信息。 |
**示例:**
...
...
@@ -242,20 +242,22 @@ on(type: 'cursorContextChange', callback: (x: number, y:number, height:number) =
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 光标变化事件。<br/>-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 是 | 回调返回光标信息。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 光标变化事件。
<br/>
-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 是 | 回调返回光标信息。 |
**示例:**
```
js
KeyboardDelegate
.
on
(
'
cursorContextChange
'
,
(
x
,
y
,
height
)
=>
{
```
js
KeyboardDelegate
.
on
(
'
cursorContextChange
'
,
(
x
,
y
,
height
)
=>
{
console
.
info
(
'
cursorContextChange
'
);
});
```
});
```
### off('cursorContextChange')
...
...
@@ -267,17 +269,19 @@ off(type: 'cursorContextChange', callback?: (x: number, y:number, height:number)
**参数:**
| 参数名 | 类型 | 必填 | 说明
|
| -------- | -------------------- | ---- |
------------------------ |
| type | string
| 是 | 光标变化事件。<br/>-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 否 | 回调返回光标信息。
|
| 参数名 | 类型 | 必填 | 说明
|
| -------- | ------ | ---- | ------------------------------------
------------------------ |
| type | string
| 是 | 光标变化事件。
<br/>
-type为’cursorContextChange‘时,表示光标变化。 |
| callback | number | 否 | 回调返回光标信息。
|
**示例:**
```js
KeyboardDelegate.off('cursorContextChange');
```
```
js
KeyboardDelegate
.
off
(
'
cursorContextChange
'
);
```
### on('selectionChange')
on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegin: number, newEnd: number) => void): void
...
...
@@ -288,18 +292,20 @@ on(type: 'selectionChange', callback: (oldBegin: number, oldEnd: number, newBegi
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 文本选择变化事件。<br/>-type为’selectionChange‘时,表示选择文本变化。 |
| callback | number | 是 | 回调返回文本选择信息。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 文本选择变化事件。
<br/>
-type为’selectionChange‘时,表示选择文本变化。 |
| callback | number | 是 | 回调返回文本选择信息。 |
**示例:**
```
js
KeyboardDelegate
.
on
(
'
selectionChange
'
,
(
oldBegin
,
oldEnd
,
newBegin
,
newEnd
)
=>
{
```
js
KeyboardDelegate
.
on
(
'
selectionChange
'
,
(
oldBegin
,
oldEnd
,
newBegin
,
newEnd
)
=>
{
console
.
info
(
'
selectionChange
'
);
});
```
});
```
### off('selectionChange')
...
...
@@ -311,16 +317,18 @@ off(type: 'selectionChange', callback?: (oldBegin: number, oldEnd: number, newBe
**参数:**
| 参数名 | 类型 | 必填 | 说明
|
| -------- | -------------------- | ---- |
------------------------ |
| type | string
| 是 | 文本选择变化事件。<br/>-type为’selectionChange‘时,表示选择文本变化。 |
| callback | number | 否 | 回调返回文本选择信息。
|
| 参数名 | 类型 | 必填 | 说明
|
| -------- | ------ | ---- | ------------------------------------
------------------------ |
| type | string
| 是 | 文本选择变化事件。
<br/>
-type为’selectionChange‘时,表示选择文本变化。 |
| callback | number | 否 | 回调返回文本选择信息。
|
**示例:**
```js
KeyboardDelegate.off('selectionChange');
```
```
js
KeyboardDelegate
.
off
(
'
selectionChange
'
);
```
### on('textChange')
...
...
@@ -333,18 +341,20 @@ on(type: 'textChange', callback: (text: string) => void): void
**参数:**
| 参数名 | 类型
| 必填 | 说明 |
| -------- | -------------------------
------ | ---- | ------------------------------------------------------------ |
| type | string
| 是 | 文本变化事件。<br/>-type为’textChange‘时,表示当前文本变化。 |
| callback | string | 是 | 回调返回当前文本内容。
|
| 参数名 | 类型
| 必填 | 说明 |
| -------- |
------ | ---- | ------------------------------------------------------------ |
| type | string
| 是 | 文本变化事件。
<br/>
-type为’textChange‘时,表示当前文本变化。 |
| callback | string | 是 | 回调返回当前文本内容。
|
**示例:**
```js
KeyboardDelegate.on('textChange', (text) => {
```
js
KeyboardDelegate
.
on
(
'
textChange
'
,
(
text
)
=>
{
console
.
info
(
'
textChange
'
);
});
```
});
```
### off('textChange')
...
...
@@ -356,16 +366,16 @@ off(type: 'textChange', callback?: (text: string) => void): void
**参数:**
| 参数名 | 类型 | 必填 | 说明
|
| -------- | -------------------- | ---- |
------------------------ |
| type | string
| 是 | 文本变化事件。<br/>-type为’textChange‘时,表示当前文本变化。 |
| callback | string | 否 | 回调返回当前文本内容。
|
| 参数名 | 类型 | 必填 | 说明
|
| -------- | ------ | ---- | ------------------------------------
------------------------ |
| type | string
| 是 | 文本变化事件。
<br/>
-type为’textChange‘时,表示当前文本变化。 |
| callback | string | 否 | 回调返回当前文本内容。
|
**示例:**
```js
KeyboardDelegate.off('textChange');
```
```
js
KeyboardDelegate
.
off
(
'
textChange
'
);
```
## KeyboardController<a name="KeyboardController"></a>
...
...
@@ -381,9 +391,9 @@ hideKeyboard(callback: AsyncCallback<void>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback
<
void> | 否 | 回调函数 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------- | ---- | -------- |
| callback | AsyncCallback
<
void> | 否 | 回调函数 |
**示例:**
...
...
@@ -403,9 +413,9 @@ hideKeyboard(): Promise<void>
**返回值:**
| 类型 | 说明 |
| ---------------- | -------- |
| Promise
<
void> | 回调函数 |
| 类型 | 说明 |
| ---------------- | -------- |
| Promise
<
void> | 回调函数 |
**示例:**
...
...
@@ -427,10 +437,10 @@ getForward(length:number, callback: AsyncCallback<string>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback
<
string
>
| 是 | 返回文本。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback
<
string
>
| 是 | 返回文本。 |
**示例:**
...
...
@@ -450,15 +460,15 @@ getForward(length:number): Promise<string>
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
string
>
| 返回文本。 |
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
string
>
| 返回文本。 |
**示例:**
...
...
@@ -477,10 +487,10 @@ getBackward(length:number, callback: AsyncCallback<string>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback
<
string
>
| 是 | 返回文本。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback
<
string
>
| 是 | 返回文本。 |
**示例:**
...
...
@@ -500,15 +510,15 @@ getBackward(length:number): Promise<string>
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
string
>
| 返回文本。 |
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
string
>
| 返回文本。 |
**示例:**
...
...
@@ -527,10 +537,10 @@ deleteForward(length:number, callback: AsyncCallback<boolean>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback
<
boolean
>
| 是 | 操作成功与否。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| callback | AsyncCallback
<
boolean
>
| 是 | 操作成功与否。 |
**示例:**
...
...
@@ -549,22 +559,22 @@ deleteForward(length:number): Promise<boolean>
**参数:**
| 参数名 | 类型 | 必填 | 说明
|
| -------- | -------- | -------- |
-------- |
| length | number | 是
| 文本长度。 |
| 参数名 | 类型 | 必填 | 说明
|
| ------ | ------ | ---- | --
-------- |
| length | number | 是
| 文本长度。 |
**返回值:**
| 类型 | 说明
|
| ------------------------------- | ----------------------------------------------
-------------- |
| Promise<boolean> | 操作成功与否。
|
| 类型 | 说明
|
| ---------------------- |
-------------- |
| Promise
<
boolean
>
| 操作成功与否。
|
**示例:**
```js
var isSuccess = TextInputClient.deleteForward(5);
```
js
var
isSuccess
=
TextInputClient
.
deleteForward
(
5
);
console
.
info
(
"
isSuccess =
"
+
isSuccess
);
```
```
### deleteBackward
...
...
@@ -576,18 +586,20 @@ deleteBackward(length:number, callback: AsyncCallback<boolean>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明
|
| -------- | -------- | -------- |
-------- |
| length | number | 是 | 文本长度。
|
| callback | AsyncCallback<boolean> | 是
| 操作成功与否。 |
| 参数名 | 类型 | 必填 | 说明
|
| -------- | ---------------------------- | ---- | ------
-------- |
| length | number | 是 | 文本长度。
|
| callback | AsyncCallback
<
boolean
>
| 是
| 操作成功与否。 |
**示例:**
```js
```
js
TextInputClient
.
deleteBackward
(
5
,
(
isSuccess
)
=>
{
console
.
info
(
"
isSuccess =
"
+
isSuccess
);
});
```
});
```
### deleteBackward
...
...
@@ -598,22 +610,24 @@ deleteBackward(length:number): Promise<boolean>
**系统能力**
: SystemCapability.MiscServices.InputMethodFramework
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| length | number | 是 | 文本长度。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
boolean
>
| 操作成功与否。 |
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
boolean
>
| 操作成功与否。 |
**示例:**
```js
```
js
var
isSuccess
=
TextInputClient
.
deleteBackward
(
5
);
console
.
info
(
"
isSuccess =
"
+
isSuccess
);
```
```
### sendKeyFunction
sendKeyFunction(action:number, callback: AsyncCallback
<
boolean
>
): void
...
...
@@ -624,18 +638,20 @@ sendKeyFunction(action:number, callback: AsyncCallback<boolean>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 编辑框属性。 |
| callback | AsyncCallback<boolean> | 是 | 操作成功与否。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 编辑框属性。 |
| callback | AsyncCallback
<
boolean
>
| 是 | 操作成功与否。 |
**示例:**
```js
```
js
TextInputClient
.
sendKeyFunction
(
inputMethod
.
ENTER_KEY_TYPE_NEXT
,(
isSuccess
)
=>
{
console
.
info
(
"
isSuccess =
"
+
isSuccess
);
});
```
});
```
### sendKeyFunction
...
...
@@ -647,15 +663,15 @@ sendKeyFunction(action:number): Promise<boolean>
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 编辑框属性。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| action | number | 是 | 编辑框属性。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
boolean
>
| 操作成功与否。 |
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
boolean
>
| 操作成功与否。 |
**示例:**
...
...
@@ -674,18 +690,20 @@ insertText(text:string, callback: AsyncCallback<boolean>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
| callback | AsyncCallback<boolean> | 是 | 操作成功与否。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
| callback | AsyncCallback
<
boolean
>
| 是 | 操作成功与否。 |
**示例:**
```js
TextInputClient.insertText("test", (isSuccess)=>{
```
js
TextInputClient
.
insertText
(
"
test
"
,
(
isSuccess
)
=>
{
console
.
info
(
"
isSuccess =
"
+
isSuccess
);
});
```
});
```
### insertText
...
...
@@ -697,15 +715,15 @@ insertText(text:string): Promise<boolean>
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| text | string | 是 | 文本。 |
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
boolean
>
| 操作成功与否。 |
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
boolean
>
| 操作成功与否。 |
**示例:**
...
...
@@ -724,9 +742,9 @@ getEditorAttribute(callback: AsyncCallback<EditorAttribute>): void
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| callback | AsyncCallback
<
[EditorAttribute](#EditorAttribute)
>
| 是 | 编辑框属性值。 |
| 参数名 | 类型 | 必填 | 说明 |
| ------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| callback | AsyncCallback
<
[EditorAttribute](#EditorAttribute)
>
| 是 | 编辑框属性值。 |
**示例:**
...
...
@@ -745,9 +763,9 @@ getEditorAttribute(): EditorAttribute
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
[EditorAttribute](#EditorAttribute)
>
| 返回编辑框属性值。 |
| 类型 | 说明 |
| ------------------------------- | ------------------------------------------------------------ |
| Promise
<
[EditorAttribute](#EditorAttribute)
>
| 返回编辑框属性值。 |
**示例:**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录