使用Web组件的拖拽功能与网页交互
介绍
本工程主要实现了对以下指南文档中 使用Web组件的拖拽功能与网页交互 示例代码片段的工程化,主要目标是帮助开发者快速了解ArkWeb的拖拽功能使应用能够在网页中实现元素的拖放,可以长按可拖拽的元素,将其拖至可放置的元素上,然后松手完成放置。
在ArkTS侧实现拖拽相关逻辑
介绍
- 建立应用侧与前端页面数据通道。
- 在onDrop方法中,做简单逻辑,例如暂存一些关键数据。
- 在ArkTS侧接受消息的方法中,添加应用处理逻辑,可以进行耗时任务。
效果预览

使用说明
- 通过Web消息端口在ArkTS和H5页面间建立数据通道,支持跨端拖拽数据传递和事件处理。
为什么H5设置的拖拽事件没有触发
介绍
- 检查相关CSS资源是否正常设置,因为有些网页UA做了判断,针对特定设备的UA才会进行CSS样式设置。可以考虑在Web组件设置自定义UA解决这种问题。
使用说明
- 通过setCustomUserAgent方法在Web组件初始化时设置自定义用户代理字符串,在默认UA基础上追加"android"标识,用于模拟Android设备访问网页或适配特定网页渲染。
工程目录
entry/src/main/
|---ets
|---|---entryability
|---|---|---EntryAbility.ets
|---|---pages
|---|---|---Index.ets // 首页
|---|---|---WebFocusManagement.ets
|---|---|---WebFocusManagement2.ets
|---resources // 静态资源
|---ohosTest
|---|---ets
|---|---|---tests
|---|---|---|---Ability.test.ets // 自动化测试用例
具体实现
- 在ArkTS侧,创建一个Web组件,并设置了src为本地HTML文件。
- 当页面加载完成后,创建Web消息端口,并将其中一个端口发送给HTML,以建立双向通信。
- 当在Web组件内拖放元素时,ArkTS侧的onDrop事件会被触发,从DragEvent中获取数据。
- 同时,HTML侧在拖放完成后会通过消息端口发送数据到ArkTS侧,ArkTS侧在端口的消息事件中接收并处理。
相关权限
不涉及。
依赖
不涉及。
约束与限制
-
本示例仅支持标准系统上运行, 支持设备:华为手机。
-
HarmonyOS系统:HarmonyOS 5.0.5 Release及以上。
-
DevEco Studio版本:6.0.0 Release及以上。
-
HarmonyOS SDK版本:HarmonyOS 6.0.0 Release SDK及以上。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo ArkWebKit/WebDragInteraction > .git/info/sparse-checkout
git remote add origin https://gitee.com/harmonyos_samples/guide-snippets.git
git pull origin master