Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
dc7d4a02
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
dc7d4a02
编写于
6月 02, 2022
作者:
O
openharmony_ci
提交者:
Gitee
6月 02, 2022
浏览文件
操作
浏览文件
下载
差异文件
!4899 多模示例修改
Merge pull request !4899 from mayunteng/beta1
上级
e342814f
18d05b7f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
74 addition
and
17 deletion
+74
-17
zh-cn/application-dev/reference/apis/js-apis-inputdevice.md
zh-cn/application-dev/reference/apis/js-apis-inputdevice.md
+25
-4
zh-cn/readme/figures/多模架构图.png
zh-cn/readme/figures/多模架构图.png
+0
-0
zh-cn/readme/多模输入子系统.md
zh-cn/readme/多模输入子系统.md
+49
-13
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-inputdevice.md
浏览文件 @
dc7d4a02
...
@@ -33,14 +33,26 @@ on(type: “change”, listener: Callback<DeviceListener>): void
...
@@ -33,14 +33,26 @@ on(type: “change”, listener: Callback<DeviceListener>): void
**示例:**
**示例:**
```
js
```
js
inputDevice
.
on
(
"
change
"
,
(
callback
)
=>
{
let
isPhysicalKeyboardExist
=
true
;
console
.
log
(
"
type:
"
+
callback
.
type
+
"
, deviceId:
"
+
callback
.
deviceId
);
inputDevice
.
on
(
"
change
"
,
(
data
)
=>
{
console
.
log
(
"
type:
"
+
data
.
type
+
"
, deviceId:
"
+
data
.
deviceId
);
inputDevice
.
getKeyboardType
(
data
.
deviceId
,
(
ret
)
=>
{
console
.
log
(
"
The keyboard type of the device is:
"
+
ret
);
if
(
ret
==
inputDevice
.
KeyboardType
.
ALPHABETIC_KEYBOARD
&&
data
.
type
==
'
add
'
)
{
// 监听物理键盘已连接。
isPhysicalKeyboardExist
=
true
;
}
else
if
(
ret
==
inputDevice
.
KeyboardType
.
ALPHABETIC_KEYBOARD
&&
data
.
type
==
'
remove
'
)
{
// 监听物理键盘已断开。
isPhysicalKeyboardExist
=
false
;
}
});
});
});
// 根据isPhysicalKeyboardExist的值决定软键盘是否弹出。
```
```
## inputDevice.off<sup>9+</sup>
## inputDevice.off<sup>9+</sup>
o
n
(type: “change”, listener?: Callback
<
DeviceListener
>
): void
o
ff
(type: “change”, listener?: Callback
<
DeviceListener
>
): void
取消监听设备的热插拔事件。
取消监听设备的热插拔事件。
...
@@ -56,7 +68,16 @@ on(type: “change”, listener?: Callback<DeviceListener>): void
...
@@ -56,7 +68,16 @@ on(type: “change”, listener?: Callback<DeviceListener>): void
**示例:**
**示例:**
```
js
```
js
listener
:
function
(
data
)
{
console
.
log
(
"
type:
"
+
data
.
type
+
"
, deviceId:
"
+
data
.
deviceId
);
}
// 单独取消listener的监听。
inputDevice
.
off
(
"
change
"
,
this
.
listener
);
// 取消所有监听
inputDevice
.
off
(
"
change
"
);
inputDevice
.
off
(
"
change
"
);
// 取消监听后,软键盘默认都弹出
```
```
## inputDevice.getDeviceIds
## inputDevice.getDeviceIds
...
@@ -361,4 +382,4 @@ inputDevice.getKeyboardType().then((ret)=>{
...
@@ -361,4 +382,4 @@ inputDevice.getKeyboardType().then((ret)=>{
| ALPHABETIC_KEYBOARD | number | 2 | 表示全键盘设备。 |
| ALPHABETIC_KEYBOARD | number | 2 | 表示全键盘设备。 |
| DIGITAL_KEYBOARD | number | 3 | 表示小键盘设备。 |
| DIGITAL_KEYBOARD | number | 3 | 表示小键盘设备。 |
| HANDWRITING_PEN | number | 4 | 表示手写笔设备。 |
| HANDWRITING_PEN | number | 4 | 表示手写笔设备。 |
| REMOTE_CONTROL | number | 5 | 表示遥控器设备。 |
| REMOTE_CONTROL | number | 5 | 表示遥控器设备。 |
\ No newline at end of file
zh-cn/readme/figures/多模架构图.png
0 → 100755
浏览文件 @
dc7d4a02
135.9 KB
zh-cn/readme/多模输入子系统.md
浏览文件 @
dc7d4a02
# 多模输入子系统
<a name="ZH-CN_TOPIC_0000001086316185"></a>
# 多模输入子系统
-
[
简介
](
#section11660541593
)
## 简介
-
[
目录
](
#section14408467105
)
-
[
使用
](
#section18111235161011
)
-
[
相关仓
](
#section135327891219
)
## 简介<a name="section11660541593"></a>
OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方式,有别于传统操作系统的输入,在OpenHarmony上,我们将多种维度的输入整合在一起,开发者可以借助应用程序框架、系统自带的UI组件或API接口轻松地实现具有多维、自然交互特点的应用程序。
OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方式,有别于传统操作系统的输入,在OpenHarmony上,我们将多种维度的输入整合在一起,开发者可以借助应用程序框架、系统自带的UI组件或API接口轻松地实现具有多维、自然交互特点的应用程序。
具体来说,多模输入子系统目前支持传统的输入交互方式,例如按键、触控等。
具体来说,多模输入子系统基于Linux原生驱动和HDF驱动接收设备输入事件,如键盘、鼠标、触摸屏、触摸板等, 对输入事件进行归一化和标准化后通过innerSDK分发到ArkUI框架,ArkUI框架封装事件后转发到应用,或者innerSDK通过JsKit接口直接分发事件到应用。

## 目录
<a name="section14408467105"></a>
## 目录
```
```
/foundation/multimodalinput/input
/foundation/multimodalinput/input
...
@@ -24,13 +21,52 @@ OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方
...
@@ -24,13 +21,52 @@ OpenHarmony旨在为开发者提供NUI(Natural User Interface)的交互方
├── uinput # 输入事件注入模块
├── uinput # 输入事件注入模块
```
```
## 使用<a name="section18111235161011"></a>
## 使用
### 接口说明
多模输入目前提供的接口为按键事件注入接口,该接口仅对系统应用开放。
inputEventClient是处理注入事件类。
**表 1**
inputEventClient的主要接口
| 功能分类 | 接口名 | 描述 |
| :------: | :-----------------------------------------------: | :----------------: |
| 注入按键 | function injectEvent(keyEvent: KeyEvent): number; | 注入按键事件的接口 |
### 使用说明
当前仅提供了BACK按键的事件注入。
当系统应用需要返回上一层时,通过注入接口将BACK键注入到多模服务,多模服务再上传到应用,以实现返回到上一层级目录的效果。使用方式如下所示:
```
// 引入提供的js接口库
import inputEventClient from '@ohos.multimodalInput.inputEventClient';
// 调用注入事件接口
let keyEvent = {
isPressed: true, // 按键事件的按键类型:true:down false:up
keyCode: 2, // 按键对应的keycode, 例如back键的值为2
keyDownDuration: 0, // 按键按下到抬起的时长,单位ms
isIntercepted: false // 标注按键事件是否检测拦截
}
res = inputEventClient.injectEvent({KeyEvent: keyEvent});
```
> **说明:** 新增的接口能力需要兼容原有的能力。
### 设备能力支持
多模输入目前提供的接口为事件注入接口,该接口目前仅对系统应用开放。
| 设备 | 触摸屏 | 触摸板 | 鼠标 | 键盘 |
| :---------: | :----: | :----: | :--: | :--: |
| rk3568 | 是 | 是 | 是 | 是 |
| hi3516dv300 | 是 | 否 | 否 | 否 |
## 相关仓
<a name="section135327891219"></a>
## 相关仓
**多模输入子系统**
**多模输入子系统**
[
multimodalinput_input
](
https://gitee.com/openharmony/multimodalinput_input
)
multimodalinput
\_
input
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录