js-apis-devicestatus-draginteraction.md 3.4 KB
Newer Older
N
ningning 已提交
1
# @ohos.deviceStatus.dragInteraction(拖拽)
D
duyufan 已提交
2

D
duyufan 已提交
3
 拖拽功能模块,提供注册和取消拖拽状态监听的能力。 
D
duyufan 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16

> **说明**
>
>   - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
>  - 本模块接口均为系统接口。

## 导入模块

```js
import dragInteraction from '@ohos.deviceStatus.dragInteraction'
```

N
ningning 已提交
17
## dragInteraction.on('drag')
D
duyufan 已提交
18 19 20 21 22 23 24 25 26 27 28

on(type: 'drag', callback: Callback<DragState>): void;

注册监听拖拽状态。

**系统能力**:SystemCapability.Msdp.DeviceStatus.Drag

**参数**

| 参数名                | 类型                                                             | 必填 | 说明                            |
| --------             | ----------------------------                                    | ---- | ----------------------------   |
D
duyufan 已提交
29
| type                 | string                                                          |  是  | 监听类型,固定取值为 'drag' |
D
duyufan 已提交
30 31 32 33 34 35 36 37 38 39 40 41 42 43
| callback             | Callback<[DragState](#dragstate)> |  是  | 回调函数,异步返回拖拽状态消息 |

**示例**

```js
try {
  dragInteraction.on('drag', (data) => {
    console.log(`Drag interaction event: ${JSON.stringify(data)}`);
  });
} catch (error) {
  console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

N
ningning 已提交
44
## dragInteraction.off('drag')
D
duyufan 已提交
45 46 47 48 49 50 51 52 53 54 55

off(type: 'drag', callback?: Callback<DragState>): void;

取消监听拖拽状态。

**系统能力**:SystemCapability.Msdp.DeviceStatus.Drag

**参数**

| 参数名                | 类型                                                              | 必填    | 说明                           |
| --------             | ----------------------------                                     | ----   | ----------------------------   |
D
duyufan 已提交
56
| type                 | string                                                           |  是    | 监听类型,固定取值为 'drag' |
D
duyufan 已提交
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| callback             | Callback<[DragState](#dragstate)> |  否  | 需要取消注册的回调函数,若无此参数,则取消当前应用注册的所有回调函数。 |

**示例**

```js
// 取消注册单个回调函数
function callback(event) {
  console.log(`Drag interaction event: ${JSON.stringify(event)}`);
  return false;
}
try {
  dragInteraction.on('drag', callback);
  dragInteraction.off("drag", callback);
} catch (error) {
  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```
```js
// 取消注册所有回调函数
function callback(event) {
  console.log(`Drag interaction event: ${JSON.stringify(event)}`);
  return false;
}
try {
  dragInteraction.on('drag', callback);
  dragInteraction.off("drag");
} catch (error) {
  console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`);
}
```

##  DragState

D
duyufan 已提交
90
拖拽状态。
D
duyufan 已提交
91

D
duyufan 已提交
92
**系统能力**:SystemCapability.Msdp.DeviceStatus.Drag
D
duyufan 已提交
93 94 95 96 97 98

| 名称                       | 值                             | 说明                              |
| --------                     |  -----------------               |  -----------------               |
| MSG_DRAG_STATE_START |  1   | 表示开始拖拽。 |
| MSG_DRAG_STATE_STOP |  2  |  表示结束拖拽。  |
| MSG_DRAG_STATE_CANCEL |  3  |  表示取消拖拽。  |