鸿蒙操作系统(HarmonyOS)是华为技术有限公司开发的一款新型操作系统,它是一个基于微内核的多场景、多终端的分布式操作系统。它旨在为手机、平板电脑、可穿戴设备、汽车娱乐、家庭娱乐中心以及物联网设备提供一体化的连接体验。
2019年8月9日,华为正式发布了鸿蒙OS,并表示将在2020年底前实现全球覆盖。2020年1月,华为正式向全球发布了鸿蒙OS 2.0 Beta版本,该版本已在华为Mate 30 Pro上进行测试。2020年4月10日,华为正式向全球发布了鸿蒙OS 2.0正式版。
2020年6月2日,华为正式向全球发布了鸿蒙OS 2.1 Beta版本,该版本已在华为P40 Pro上进行测试。2020年7月31日,华为正式向全球发布了鸿蒙OS 2.1正式版。
2020年9月10日,华为正式向全球发布了鸿蒙OS 3.0 Beta版本,该版本已在华为Mate 40 Pro上进行测试。2020年12月16日,华为正式向全球发布了鸿蒙OS 3.0正式版。
目前已实现的功能包括: • 支持多样化的应用生态 • 支持多样化的UI/UX • 支持多样化的应用分发 • 支持多样化的数字内容 • 支持多样化的数字生态 • 支持多样化的AI能力 • 支持多样化的安全保障 • 支持多样化的物联网能力 • 支持多样化的5G能力
事件主要包括手势事件和按键事件。手势事件主要用于智能穿戴等具有触摸屏的设备,按键事件主要用于智慧屏设备。
手势表示由单个或多个事件识别的语义动作(例如:点击、拖动和长按)。一个完整的手势也可能由多个事件组成,对应手势的生命周期。JS UI 框架支持的手势事件有:
触摸
点击
click:用户快速轻敲屏幕。
长按
longpress:用户在相同位置长时间保持与屏幕接触。
具体的使用示例如下:
<!-- xxx.hml -->
<div class="container">
<div class="text-container" onclick="click">
<text class="text-style">{{onclick}}</text>
</div>
<div class="text-container" ontouchstart="touchStart">
<text class="text-style">{{touchStart}}</text>
</div>
<div class="text-container" ontouchmove="touchMove">
<text class="text-style">{{touchMove}}</text>
</div>
<div class="text-container" ontouchend="touchEnd">
<text class="text-style">{{touchEnd}}</text>
</div>
<div class="text-container" ontouchcancel="touchCancel">
<text class="text-style">{{touchCancel}}</text>
</div>
<div class="text-container" onlongpress="longPress">
<text class="text-style">{{onLongPress}}</text>
</div>
</div>
.container {
flex-direction: column;
justify-content: center;
align-items: center;
}
.text-container {
padding-top: 10px;
flex-direction: column;
}
.text-style {
padding-top: 20px;
padding-left: 100px;
width: 750px;
height: 100px;
text-align: center;
font-size: 50px;
color: #ffffff;
background-color: #09ba07;
}
// xxx.js
export default {
data: {
textData: "",
touchStart: "touchstart",
touchMove: "touchmove",
touchEnd: "touchend",
touchCancel: "touchcancel",
onClick: "onclick",
onLongPress: "onlongpress",
},
onInit() {
this.textData = "initdata";
},
onReady: function () {},
onShow: function () {},
onHide: function () {},
onDestroy: function () {},
touchCancel: function (event) {
this.touchCancel = "canceled";
},
touchEnd: function(event) {
this.touchEnd = "ended";
},
touchMove: function(event) {
this.touchMove = "moved";
},
touchStart: function(event) {
this.touchStart = "touched";
},
longPress: function() {
this.onLongPress = "longpressed";
},
click: function() {
this.onClick = "clicked";
},
}
按键事件是智慧屏上特有的手势事件,当用户操作遥控器按键时触发。用户点击一个遥控器按键,通常会触发两次 key 事件:先触发 action 为 0,再触发 action 为 1,即先触发按下事件,再触发抬起事件。action 为 2 的场景比较少见,一般为用户按下按键且不松开,此时 repeatCount 将返回次数。每个物理按键对应各自的按键值(keycode)以实现不同的功能,常用的按键值请参考组件通用事件。具体的使用示例如下:
<!-- xxx.hml -->
<div class="card-box">
<div class="content-box">
<text class="content-text" onkey="keyUp" onfocus="focusUp" onblur="blurUp">{{up}}</text>
</div>
<div class="content-box">
<text class="content-text" onkey="keyDown" onfocus="focusDown" onblur="blurDown">{{down}}</text>
</div>
</div>
.card-box {
flex-direction: column;
justify-content: center;
}
.content-box {
align-items: center;
height: 200px;
flex-direction: column;
margin-left: 200px;
margin-right: 200px;
}
.content-text {
font-size: 40px;
text-align: center;
}
// xxx.js
export default {
data: {
up: "up",
down: "down",
},
focusUp: function() {
this.up = "up focused";
},
blurUp: function() {
this.up = "up";
},
keyUp: function() {
this.up = "up keyed";
},
focusDown: function() {
this.down = "down focused";
},
blurDown: function() {
this.down = "down";
},
keyDown: function() {
this.down = "down keyed";
},
}
按键事件通过获焦事件向下分发,因此示例中使用了 focus 事件和 blur 事件明确当前焦点的位置。点按上下键选中 up 或 down 按键,即相应的 focused 状态,失去焦点的按键恢复正常的 up 或 down 按键文本。按确认键后该按键变为 keyed 状态。
场景介绍应用或者其他模块可以通过接口完成以下功能:查询本机是否支持NFC能力。开启或者关闭本机NFC。接口说明类名接口名功能描...
场景介绍通过方向传感器数据,可以感知用户设备当前的朝向,从而达到为用户指明方位的目的。通过重力和陀螺仪传感器数据,能感知...
LayoutScatterjava.lang.Object |---ohos.agp.components.LayoutScatterpublic class LayoutScatterextends Object提供组件转换...
MagicLayout.LayoutConfigjava.lang.Object |---ohos.agp.components.ComponentContainer.LayoutConfig |---|---ohos.agp.compon...
RoundProgressBarjava.lang.Object |---ohos.agp.components.Component |---|---ohos.agp.components.ProgressBar |---|---|---o...