1e41f4b71Sopenharmony_ci# @ohos.deviceStatus.dragInteraction(拖拽)(系统接口) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci拖拽功能模块,提供注册和取消拖拽状态监听的能力。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci> 9e41f4b71Sopenharmony_ci> - 本模块接口均为系统接口。 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci## 导入模块 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci```js 14e41f4b71Sopenharmony_ciimport { dragInteraction } from '@kit.ArkUI' 15e41f4b71Sopenharmony_ci``` 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci## DragState 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci拖拽状态。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Msdp.DeviceStatus.Drag 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 26e41f4b71Sopenharmony_ci| --------------------- | ---- | -------------- | 27e41f4b71Sopenharmony_ci| MSG_DRAG_STATE_START | 1 | 表示开始拖拽。 | 28e41f4b71Sopenharmony_ci| MSG_DRAG_STATE_STOP | 2 | 表示结束拖拽。 | 29e41f4b71Sopenharmony_ci| MSG_DRAG_STATE_CANCEL | 3 | 表示取消拖拽。 | 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci## Summary<sup>11+</sup> 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci拖拽对象的数据摘要。 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Msdp.DeviceStatus.Drag 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 40e41f4b71Sopenharmony_ci| ---------- | -------- | ---- | ------------------ | 41e41f4b71Sopenharmony_ci| dataType | string | 是 | 拖拽对象类型。 | 42e41f4b71Sopenharmony_ci| dataSize | number | 是 | 拖拽对象数据长度。 | 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci## dragInteraction.on('drag') 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_cion(type: 'drag', callback: Callback\<DragState>): void 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci注册监听拖拽状态。 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Msdp.DeviceStatus.Drag 53e41f4b71Sopenharmony_ci 54e41f4b71Sopenharmony_ci**参数:** 55e41f4b71Sopenharmony_ci 56e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 57e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | -------------------------------- | 58e41f4b71Sopenharmony_ci| type | string | 是 | 监听类型,固定取值为 'drag'。 | 59e41f4b71Sopenharmony_ci| callback | Callback\<[DragState](#dragstate)> | 是 | 回调函数,异步返回拖拽状态消息。 | 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci**错误码:** 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 66e41f4b71Sopenharmony_ci| -------- | ----------------- | 67e41f4b71Sopenharmony_ci| 202 | Not system application. | 68e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci**示例:** 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci```ts 73e41f4b71Sopenharmony_citry { 74e41f4b71Sopenharmony_ci dragInteraction.on('drag', (data: dragInteraction.DragState) => { 75e41f4b71Sopenharmony_ci console.log(`Drag interaction event: ${JSON.stringify(data)}`); 76e41f4b71Sopenharmony_ci }); 77e41f4b71Sopenharmony_ci} catch (error) { 78e41f4b71Sopenharmony_ci console.log(`Register failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 79e41f4b71Sopenharmony_ci} 80e41f4b71Sopenharmony_ci``` 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci## dragInteraction.off('drag') 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_cioff(type: 'drag', callback?: Callback\<DragState>): void 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci取消监听拖拽状态。 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Msdp.DeviceStatus.Drag 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci**参数:** 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 95e41f4b71Sopenharmony_ci| -------- | ---------------------------------- | ---- | ---------------------------------------------------------------------- | 96e41f4b71Sopenharmony_ci| type | string | 是 | 监听类型,固定取值为 'drag'。 | 97e41f4b71Sopenharmony_ci| callback | Callback\<[DragState](#dragstate)> | 否 | 需要取消注册的回调函数,若无此参数,则取消当前应用注册的所有回调函数。 | 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci**错误码:** 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 104e41f4b71Sopenharmony_ci| -------- | ----------------- | 105e41f4b71Sopenharmony_ci| 202 | Not system application. | 106e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.2.Incorrect parameter types.3.Parameter verification failed. | 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ci**示例:** 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci```ts 111e41f4b71Sopenharmony_ci// 取消注册单个回调函数 112e41f4b71Sopenharmony_cifunction single_callback(event: dragInteraction.DragState) { 113e41f4b71Sopenharmony_ci console.log(`Drag interaction event: ${JSON.stringify(event)}`); 114e41f4b71Sopenharmony_ci return false; 115e41f4b71Sopenharmony_ci} 116e41f4b71Sopenharmony_citry { 117e41f4b71Sopenharmony_ci dragInteraction.on('drag', single_callback); 118e41f4b71Sopenharmony_ci dragInteraction.off("drag", single_callback); 119e41f4b71Sopenharmony_ci} catch (error) { 120e41f4b71Sopenharmony_ci console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 121e41f4b71Sopenharmony_ci} 122e41f4b71Sopenharmony_ci``` 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ci```ts 125e41f4b71Sopenharmony_ci// 取消注册所有回调函数 126e41f4b71Sopenharmony_cifunction all_callback(event: dragInteraction.DragState) { 127e41f4b71Sopenharmony_ci console.log(`Drag interaction event: ${JSON.stringify(event)}`); 128e41f4b71Sopenharmony_ci return false; 129e41f4b71Sopenharmony_ci} 130e41f4b71Sopenharmony_citry { 131e41f4b71Sopenharmony_ci dragInteraction.on('drag', all_callback); 132e41f4b71Sopenharmony_ci dragInteraction.off("drag"); 133e41f4b71Sopenharmony_ci} catch (error) { 134e41f4b71Sopenharmony_ci console.log(`Execute failed, error: ${JSON.stringify(error, [`code`, `message`])}`); 135e41f4b71Sopenharmony_ci} 136e41f4b71Sopenharmony_ci``` 137e41f4b71Sopenharmony_ci 138e41f4b71Sopenharmony_ci## dragInteraction.getDataSummary<sup>11+</sup> 139e41f4b71Sopenharmony_ci 140e41f4b71Sopenharmony_cigetDataSummary(): Array\<Summary> 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci获取所有拖拽对象的摘要。 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Msdp.DeviceStatus.Drag 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ci**返回值:** 149e41f4b71Sopenharmony_ci 150e41f4b71Sopenharmony_ci| 类型 | 说明 | 151e41f4b71Sopenharmony_ci| ----------------------------- | ---------------------------------------------------- | 152e41f4b71Sopenharmony_ci| Array\<[Summary](#summary11)> | 所有拖拽对象的数据摘要,包含拖拽对象的类型和数据长度。 | 153e41f4b71Sopenharmony_ci 154e41f4b71Sopenharmony_ci**错误码:** 155e41f4b71Sopenharmony_ci 156e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。 157e41f4b71Sopenharmony_ci 158e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 159e41f4b71Sopenharmony_ci| -------- | ----------------- | 160e41f4b71Sopenharmony_ci| 202 | Not system application. | 161e41f4b71Sopenharmony_ci 162e41f4b71Sopenharmony_ci**示例:** 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci```ts 165e41f4b71Sopenharmony_cilet summarys: Array<dragInteraction.Summary> = dragInteraction.getDataSummary(); 166e41f4b71Sopenharmony_ciconsole.log(`Drag interaction summarys: ${JSON.stringify(summarys)}`); 167e41f4b71Sopenharmony_ci```