OpenHarmony开发实例:【 待办事项TodoList】

简介

TodoList应用是基于OpenHarmony SDK开发的安装在润和HiSpark Taurus AI Camera(Hi3516d)开发板标准系统上的应用;应用主要功能是以列表的形式,展示需要完成的日程;通过本demo可以学习到 JS UI 框架List使用;

运行效果

样例效果

样例原理

本demo只有一个list组件组成,初始化数据展示列表,并设置点击事件改变数据状态,重新渲染列表

原理图

工程版本
  • 系统版本/API版本:OpenHarmony SDK API 8
  • IDE版本:DevEco Studio 3.0 Beta3

快速上手

准备硬件环境

搭建标准系统环境

准备开发环境
  • 安装最新版[DevEco Studio]。
  • 请参考[配置OpenHarmony SDK],完成DevEco Studio的安装和开发环境配置。
准备工程

鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

搜狗高速浏览器截图20240326151450.png

配置git
  • 提前注册准备码云gitee账号。

  • git工具下载安装

    sudo apt install git
    sudo apt install git-lfs

  • 配置git用户信息

    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store

git下载
git clone https://gitee.com/openharmony-sig/knowledge_demo_smart_home.git --depth=1
工程导入
  • DevEco Studio导入本工程;

    打开DevEco Studio,点击File->Open->下载路径/FA/TodoList

    打开工程

    导入工程

编译
  • 点击File > Project Structure > Project > Signing Configs界面勾选“Automatically generate signing”,等待自动签名完成即可,点击“OK”。如下图所示:

    运行

  • 点击Build->Build Hap/APPs 编译,编译成功生成entry-default-signed.hap

编译

编译完成

烧录/安装
  • 识别到设备后点击

    img

    ,或使用默认快捷键Shift+F10(macOS为Control+R)运行应用。

运行

  • [安装应用]如果IDE没有识别到设备就需要通过命令安装,如下

    打开OpenHarmony SDK路径 \toolchains 文件夹下,执行如下hdc_std命令,其中path为hap包所在绝对路径。

    hdc_std install -r path\entry-default-signed.hap//安装的hap包需为xxx-signed.hap,即安装携带签名信息的hap包。

工程目录

完整的项目结构目录如下

├─entry\src\main
│          │  config.json  //应用配置文件
│          │  
│          ├─js
│          │  └─MainAbility
│          │      │  app.js  // 应用程序入口
│          │      │  
│          │      ├─common   // 公共资源
│          │      │  │  checkbutton.png
│          │      │  │  delete.png
│          │      │  │  done.png
│          │      │  │  head0.png
│          │      │  │  head1.png
│          │      │  │  head2.png
│          │      │  │  head3.png
│          │      │  │  head4.png
│          │      │  │  right.png
│          │      │  │  
│          │      │  └─images
│          │      │          bg-tv.jpg
│          │      │          Wallpaper.png
│          │      │          
│          │      ├─i18n   // 多语言文件
│          │      │      en-US.json
│          │      │      zh-CN.json
│          │      │      
│          │      └─pages
│          │          └─index
│          │                  index.css  //页面样式
│          │                  index.hml  //首页展示
│          │                  index.js   //页面逻辑
│          │                  
│          └─resources
│              ├─base
│              │  ├─element
│              │  │      string.json
│              │  │      
│              │  └─media
│              │          icon.png
│              │          
│              └─rawfile

开发步骤

1. 新建OpenHarmony ETS项目

在DevEco Studio中点击File -> New Project ->[Standard]Empty Ability->Next,Language 选择JS语言,最后点击Finish即创建成功。 

image-20211124092813545

2. 编写主页面

image-20211124093106260

2.1页面展示

1)最外层是[div]容器,并在class里面设置背景色为黑色按行布局;

2)再通过[list]包裹[list-item]的 内层div 容器按列布局,并设置点击事件[onclick]

3)[div]容器按列布局依次写入[image] 组件和 div 容器 ;

4)div容器里面又包裹一个div容器和以及[text]组件,且div容器里面也是两个按列布局的[text]

<div class="container"><list class="tag-list" initialindex="{{initialIndex}}"><list-item for="{{taskList}}" class="todo-list-item" focusable="false"><div class="todo-item flex-row" onclick="completeEvent({{$item.id}})"><image class="todo-image" src="{{$item.checkBtn}}" ></image><div class="todo-text-wrapper"><div class="todo-name-mark"><text class="todo-name {{$item.color}}" focusable="false">{{$item.event}}</text><text class="todo-mark {{$item.tag}} {{$item.showTag}}"></text></div><text class="todo-time" >{{$item.time}}</text></div></div></list-item></list>
</div>
2.2点击事件

点击某一行后,并根据当前行的状态改变相反的状态

completeEvent(e) {for (let i of this.taskList) {if (i.id == e) {if (i.checkBtn == "/common/done.png") {i.checkBtn = "/common/checkbutton.png";i.showTag = 'show';i.color = 'text-default';i.completeState = false;} else {i.checkBtn = "/common/done.png";i.showTag = 'hide';i.color = 'text-gray';i.completeState = true;}return;}}},
操作体验
列表滑动

样例效果

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端三剑客 HTML+CSS+JavaScript ③ HTML标准结构

生活没有任何意义&#xff0c;这就是活着的理由&#xff0c;而且是唯一的理由 —— 24.4.22 一、HTML注释 1.特点 注释的内容会被浏览器所忽略&#xff0c;不会呈现到页面中&#xff0c;但源代码中依然可见 2.作用 对代码进行解释和说明 3.写法 <!-- xxxxx --> <html&…

上位机图像处理和嵌入式模块部署(树莓派4b使用pcl点云库)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 图像处理&#xff0c;大家都知道它有显著的优点和缺点。优点就是分辨率高&#xff0c;信息丰富。缺点就是&#xff0c;整个图像本身没有深度信息。…

高效可扩展,使用Dask进行大数据分析

大家好&#xff0c;Dask技术作为并行计算领域的创新力量&#xff0c;正在重塑大数据的处理模式。这项开源项目为Python语言带来了强大的并行计算能力&#xff0c;突破了传统数据处理在扩展性和性能上的瓶颈。 本文将介绍Dask的发展历程、架构设计&#xff0c;并分析其在大数据…

maven exec plugin启动springboot应用并且change port更改端口(多模块)

<!--在子模块的pom中添加--><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>3.2.0</version> <configuration><executable>java</executable><arg…

Vue中的 keep-alive 实现原理

Vue中的 keep-alive 实现原理 keep-alive 用法实现原理源码展示源码分析 keep-alive 用法 官方文档&#xff1a;keep-alive 的用法 keep-alive 的作用&#xff1a;主要用于保留组件状态或避免重新渲染。keep-alive 包裹动态组件时&#xff0c;会缓存不活动的组件实例&#xff0…

常用推理框架介绍

vLLM GitHub链接&#xff1a;https://github.com/vLLM/vllm优势&#xff1a;利用CPU的向量化指令集实现推理加速&#xff0c;适合在没有强大GPU资源的场景下使用。选择建议&#xff1a;如果你主要使用CPU进行推理&#xff0c;或者希望在不依赖GPU的情况下获得较好的性能&#…

Nacos服务注册中心

1.引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>2.application.properties中配置 # 应用名称 spring.application.namenacos-aserver…

【再探】设计模式-设计原则

设计原则是在编写程序时引导程序员遵循的一些原则和准则。这些原则旨在提高代码的可读性、可维护性、可扩展性和可重用性。 可读性&#xff1a;理解和沟通的难易程度。可维护性&#xff1a;修改和调整的难易程度。可扩展性&#xff1a;应对未来变化的能力。可重用性&#xff1…

接收区块链的CCF会议--SecureComm 2024 截止5.10 附录用率

会议名称&#xff1a;SecureComm CCF等级&#xff1a;CCF C类会议 类别&#xff1a;网络与信息安全 录用率&#xff1a;2022年录用率33%&#xff08;43/130) Topics Security and privacy in computer networks (e.g., wired, wireless, mobile, hybrid, sensor, vehicular,…

UI5:面向企业级应用的JavaScript框架

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

时间默认显示当前日期及系统时间

要将 xtdsSj 绑定到当前日期和系统时间&#xff0c;你可以在组件的 data 中初始化 xtdsSj 属性为当前日期及系统时间的字符串。然后&#xff0c;在组件创建时更新 xtdsSj&#xff0c;确保它始终显示当前日期和系统时间。 1.系统读数时间默认显示当前日期及系统时间 <templa…

斯坦福HAI年度报告增加AI4S;美阿贡国家实验室与日本最大综合研究机构建立合作;催化剂加获得深势科技未知金额投资

AI for Science 企业动态速览—— Cota Healthcare 与赛诺菲达成合作 腾讯牵头共建医疗影像国家新一代人工智能开放创新平台 催化剂加获得深势科技未知金额投资 TetraScience 与 Google Cloud 合作促进科学人工智能创新 美国阿贡国家实验室和日本理化学研究所签署谅解备忘录…

ng反向代理 conf配置

log_format szxw_timed_combined $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $request_time $upstream_response_time;#外部转发 …

15.Nacos服务分级存储模型

服务跨集群调用问题&#xff1a; 服务调用尽可能的选择本地集群的服务&#xff0c;跨集群调用延迟较高。 本地集群不可访问的情况下&#xff0c;再去访问其他集群。 如何配置集群的实例属性&#xff1a; spring: cloud:nacos:server-addr: localhost:8848 #nacos服务端地址d…

JMeter--逻辑控制器--仅一次控制器

仅一次控制器&#xff08;Once Only Controller&#xff09; 可以让控制器内部的逻辑只执行一次&#xff1b;单次的范围是针对某一个线程&#xff0c;无论线程外面迭代多少次或者里面循环多少次&#xff0c;均只执行一次&#xff1b;单次控制器一般可用于登陆&#xff…

springCloud是什么,怎么创建

Spring Cloud是一个微服务框架&#xff0c;它为微服务架构开发提供了全套的分布式系统解决方案。它利用Spring Boot的开发便利性&#xff0c;简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。Spring Cloud并没有…

findImg找图工具

findImg 安装 npm install findImg -g 启动 findImg run 介绍 找出当前目录下的所有图片&#xff08;包括svg的symbol格式&#xff09;在浏览器中显示出来 源码 https://github.com/HuXin957/find-img 场景 例如前端项目中的img目录&#xff0c;大家都在往里面放图片&#xff…

java接口自动化测试

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

实验3 7段数码管译码器动态显示

实验目的: 1、构建基于verilog语言的8位7段断数码管的驱动实验; 2、掌握数码管的数显原理。 3、完成如下功能:8位数码管循环显示0123456789。 实验内容及步骤: 一、实验原理 1、数码管结构 当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的…

那些早期的iax和SIP软电话软件界面,看看你见过几个?

目录 一些iax/sip软电话UI图片SIP软电话的界面怎么设计SIP软电话的功能有哪些 早期voip发展中&#xff0c;很多公司开发了自己的SIP软电话&#xff0c;有些已经不存在了&#xff0c;有些还在使用中&#xff0c;比如X-Lite&#xff0c;Zoiper等等&#xff0c;我们一起看看这些早…