当前位置:   article > 正文

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

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工具下载安装

    1. sudo apt install git
    2. sudo apt install git-lfs

  • 配置git用户信息

    1. git config --global user.name "yourname"
    2. git config --global user.email "your-email-address"
    3. 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包。

工程目录

完整的项目结构目录如下

  1. ├─entry\src\main
  2. │ │ config.json //应用配置文件
  3. │ │
  4. │ ├─js
  5. │ │ └─MainAbility
  6. │ │ │ app.js // 应用程序入口
  7. │ │ │
  8. │ │ ├─common // 公共资源
  9. │ │ │ │ checkbutton.png
  10. │ │ │ │ delete.png
  11. │ │ │ │ done.png
  12. │ │ │ │ head0.png
  13. │ │ │ │ head1.png
  14. │ │ │ │ head2.png
  15. │ │ │ │ head3.png
  16. │ │ │ │ head4.png
  17. │ │ │ │ right.png
  18. │ │ │ │
  19. │ │ │ └─images
  20. │ │ │ bg-tv.jpg
  21. │ │ │ Wallpaper.png
  22. │ │ │
  23. │ │ ├─i18n // 多语言文件
  24. │ │ │ en-US.json
  25. │ │ │ zh-CN.json
  26. │ │ │
  27. │ │ └─pages
  28. │ │ └─index
  29. │ │ index.css //页面样式
  30. │ │ index.hml //首页展示
  31. │ │ index.js //页面逻辑
  32. │ │
  33. │ └─resources
  34. │ ├─base
  35. │ │ ├─element
  36. │ │ │ string.json
  37. │ │ │
  38. │ │ └─media
  39. │ │ icon.png
  40. │ │
  41. │ └─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]

  1. <div class="container">
  2. <list class="tag-list" initialindex="{{initialIndex}}">
  3. <list-item for="{{taskList}}" class="todo-list-item" focusable="false">
  4. <div class="todo-item flex-row" onclick="completeEvent({{$item.id}})">
  5. <image class="todo-image" src="{{$item.checkBtn}}" ></image>
  6. <div class="todo-text-wrapper">
  7. <div class="todo-name-mark">
  8. <text class="todo-name {{$item.color}}" focusable="false">{{$item.event}}</text>
  9. <text class="todo-mark {{$item.tag}} {{$item.showTag}}"></text>
  10. </div>
  11. <text class="todo-time" >{{$item.time}}</text>
  12. </div>
  13. </div>
  14. </list-item>
  15. </list>
  16. </div>
2.2点击事件

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

  1. completeEvent(e) {
  2. for (let i of this.taskList) {
  3. if (i.id == e) {
  4. if (i.checkBtn == "/common/done.png") {
  5. i.checkBtn = "/common/checkbutton.png";
  6. i.showTag = 'show';
  7. i.color = 'text-default';
  8. i.completeState = false;
  9. } else {
  10. i.checkBtn = "/common/done.png";
  11. i.showTag = 'hide';
  12. i.color = 'text-gray';
  13. i.completeState = true;
  14. }
  15. return;
  16. }
  17. }
  18. },
操作体验
列表滑动

样例效果

鸿蒙Next核心技术分享

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

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

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

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/578751
推荐阅读
相关标签
  

闽ICP备14008679号