HarmonyOS 鸿蒙Next如何实现跨应用拖拽
HarmonyOS 鸿蒙Next如何实现跨应用拖拽
两个应用都是窗口模式,如何将图片从应用1拖拽到应用2,有没有大佬解答一下
3 回复
楼主您好,该问题需要完整的demo分析,建议通过在线提单提交问题。
更多关于HarmonyOS 鸿蒙Next如何实现跨应用拖拽的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在应用1里的图片如下:
Image(this.imgUri)
.width('80%')
.height(80)
.margin(30)
.draggable(true)
.onDragStart((event: DragEvent) => {
let image: unifiedDataChannel.Image = new unifiedDataChannel.Image();
image.imageUri = this.imgUri;
let data: unifiedDataChannel.UnifiedData = new unifiedDataChannel.UnifiedData(image);
event.setData(data);
return { builder: () => {
this.pixelMapBuilder()
}, extraInfo: 'custom extra info.' }
})
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
应用2里接收如下
Column() {
Image(this.imgUri)
.width('80%')
.height(80)
.margin(30)
.backgroundColor(Color.Pink)
.draggable(true)
}
.height('50%')
.width('90%')
.draggable(true)
.border({ width: 1 })
.onDragEnter((event: DragEvent | undefined, extraParams: string | undefined) => { //拖拽进去组件
console.info('wyb: onDragEnter, ' + extraParams)
})
.onDragMove((event: DragEvent | undefined, extraParams: string | undefined) => { //拖拽时移动
console.info('wyb: onDragMove, ' + extraParams)
})
.onDragLeave((event: DragEvent | undefined, extraParams: string | undefined) => { //拖拽离开组件
console.info('wyb: onDragLeave, ' + extraParams)
})
.onDrop((event: DragEvent) => { //释放组件
console.info('wyb: onDragDrop, ')
try {
let data = event.getData(); // 这里拿到的是undefined,报错走catch了
let record = data.getRecords();
let img = (record[0] as unifiedDataChannel.Image)
} catch (err) {
console.error(`err: ${JSON.stringify(err.code)}, ${JSON.stringify(err.message)}`)
}
})
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
HarmonyOS 鸿蒙Next实现跨应用拖拽功能,主要通过分布式拖拽API实现。开发者需要在应用界面上设置监听器来监听拖拽事件,准备并封装拖拽数据,然后调用HarmonyOS的拖拽API发起拖拽操作。接收端应用也需设置监听器来接收并处理拖拽数据。此功能需确保双端设备登录同一华为账号,并接入同一局域网,同时打开Wi-Fi和蓝牙开关。具体实现细节可参考HarmonyOS官方文档和开发指南。如果问题依旧没法解决请加我微信,我的微信是itying888。
更多关于HarmonyOS 鸿蒙Next如何实现跨应用拖拽的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html