# MultiDeviceInteraction **Repository Path**: harmonyos_samples/multi-device-interaction ## Basic Information - **Project Name**: MultiDeviceInteraction - **Description**: 本实例依托系统级交互归一化能力,实现了跨多端设备的统一交互体验。支持触控屏、触控板、鼠标、键盘等多种输入方式,涵盖基础输入事件、手势识别、拖拽操作及焦点管理等核心交互功能,为多设备交互提供完整示例。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 3 - **Created**: 2025-10-21 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实现多设备交互功能 ## 项目简介 本实例依托系统级交互归一化能力,实现了跨多端设备的统一交互体验。支持触控屏、触控板、鼠标、键盘等多种输入方式,涵盖基础输入事件、手势识别、拖拽操作及焦点管理等核心交互功能,为多设备交互提供完整示例。 ## 效果预览 | 输入设备选择 | 交互事件选择 | 交互体验 | |---------------------------------------------------|------------------------------------------------------|-----------------------------------------------------| | | | | ## 使用说明 1. 手机/平板/电脑/智慧屏设备运行default模块,手表设备运行wearable模块。 2. 在首页选择要交互的输入设备,进入该输入设备支持的交互事件页。 3. 选择要体验的交互事件,进行交互并查看交互效果。 ## 工程目录 ``` ├───default │ ├───src/main/ets │ │ ├───common │ │ │ ├───constants │ │ │ │ └───Constants.ets // 常量类 │ │ │ └───utils │ │ │ ├───ResourceConversion.ets // 资源转换类 │ │ │ ├───Utils.ets // 通用方法 │ │ │ ├───WidthBreakpointType.ets // 断点工具类 │ │ │ └───WindowUtil.ets // 窗口工具类 │ │ ├───entryability │ │ │ └───EntryAbility.ets // Ability的生命周期回调内容 │ │ ├───entrybackupability │ │ │ └───EntryBackupAbility.ets // Ability的生命周期回调内容 │ │ ├───pages │ │ │ └───Index.ets // 首页 │ │ └───view │ │ ├───base │ │ │ ├───AxisEvent.ets // 轴事件 │ │ │ ├───FocusAxisEvent.ets // 焦点轴事件 │ │ │ ├───HandwriteEvent.ets // 手写笔事件 │ │ │ ├───HoverEvent.ets // 指针事件 │ │ │ └───KeyEvent.ets // 按键事件 │ │ ├───drag │ │ │ └───DragEvent.ets // 拖拽事件 │ │ ├───focus │ │ │ └───FocusEvent.ets // 焦点事件 │ │ ├───gesture │ │ │ ├───ClickEvent.ets // 点击事件 │ │ │ ├───LongPressGestureEvent.ets // 长按手势 │ │ │ ├───PanGestureEvent.ets // 滑动手势 │ │ │ ├───PinchGestureEvent.ets // 捏合手势 │ │ │ ├───RotationGestureEvent.ets // 旋转手势 │ │ │ ├───SwipeGestureEvent.ets // 轻扫手势 │ │ │ └───TapGestureEvent.ets // 点击手势 │ │ ├───InteractionEvents.ets // 设备事件列表页 │ │ ├───UserActionTitle.ets // 交互小标题组件 │ │ ├───UserButton.ets // 交互列表按钮组件 │ │ ├───UserDesc.ets // 交互设备响应组件 │ │ ├───UserText.ets // 交互数据展示组件 │ │ └───UserTitle.ets // 交互事件标题组件 │ └───src/main/resources └───wearable ├───src/main/ets │ ├───pages │ │ └───Index.ets // 首页 │ ├───view │ │ ├───DigitalCrownEvent.ets // 表冠事件 │ │ ├───PressureSensitive.ets // 压感交互 │ │ └───SmartGestureEvent.ets // 智慧手势 │ ├───wearableability │ │ └───WearableAbility.ets // Ability的生命周期回调内容 │ └───wearablebackupability │ └───WearableBackupAbility.ets // Ability的生命周期回调内容 └───src/main/resources ``` ## 具体实现 1. 基础输入事件如手写笔事件,可以直接使用HandwriteComponent手写套件组件,引入该组件可以直接实现不同笔触的手写功能。通过监听组件的事件,并在回调中进行业务处理,来响应输入设备的交互操作,如轴事件(onAxisEvent)、按键事件(onKeyEvent)等。 2. 手势事件需要在组件上添加对应的手势对象,以便系统可以收集并进行处理。通过gesture绑定手势,再配置不同的手势类型,如长按(LongPressGesture)、滑动(PanGesture)、捏合(PinchGesture)等常用手势,onAction为手势处理器识别成功的回调,在其中进行相应的业务处理。 3. 使用onFocus和onBlur事件监听组件的获焦与失焦状态变化。默认遵循系统走焦算法,同时支持通过tabIndex设置焦点顺序,并利用nextFocus属性自定义上下左右方向的焦点跳转路径,满足复杂界面的导航需求。 4. 拖拽功能通过一组事件协同实现,onDragStart、onDragEnter、onDragMove、onDragLeave、onDrop一系列的拖拽事件依次响应在拖拽过程中的事件,在各阶段事件中处理相应业务,可构建完整的拖拽交互流程。 ## 相关权限 无 ## 约束与限制 1.设备限制 本端设备:手表/手机/平板/电脑/智慧屏设备。 2.HarmonyOS系统:HarmonyOS 6.0.0 Release 及以上。 3.DevEco Studio版本:DevEco Studio 6.0.0 Release 及以上。 4.HarmonyOS SDK版本:HarmonyOS 6.0.0 Release SDK及以上。