目录

HarmonyOS应用开发

HarmonyOS应用开发

目录


了解HarmonyOS

一、鸿蒙官方网站

网址:

https://i-blog.csdnimg.cn/blog_migrate/10d3faa10c95d793e82a2ce145f9f413.png

二、前端三大框架: Vue  React  Angular

  • Angular   2009  -  Google
  • Vue 2014  -  尤雨溪
  • React  2015  -  Facebook

三、为什么学习鸿蒙开发

  1. 对于个人   第一次有机会与老程序员同台竞争。逐渐成长为“第一批鸿蒙开发程序员”。
  2. 对于行业   MVVM框架的发展。  简单化。   ArkUI框架。
  3. 对于民族    中国必须有自己的操作系统。世界公认三大基础软件:OS操作系统、DB数据库、IDE开发工具

四、鸿蒙系统和安卓系统的关系

鸿蒙系统可以安装Android系统的.apk安装文件?

| 厂家         | 操作系统                                                                                | 开源环境              |

| ——–      |   —————————————————————————– | ———————   |

| Google  | 基于Linux内核的Android  (AOSP + GMS )              | Android开源项目 |

| Huawei | 基于AOSPLiteOS开发的HarmonyOSOpenHarmony + HMS)。 | OpenHarmony开源社区 |

鸿蒙的优势:

  1. android/ios主要场景:手机、平板、手表、智能电视等。
  2. 鸿蒙主要场景:IOT物联网场景中所有智能设备。

五、HarmonyOS概述

HarmonyOS三大特征

  1. 硬件互助,资源共享

  2. 一次开发,多端部署

  3. 统一OS,弹性部署

HarmonyOS开发支持的编程语言

应用开发     Java、JS、TS等语言。   ArkUI框架。  MVVM框架。

硬件开发     C、C++语言。

六、安装开发工具

下载开发工具  DevEco Studio

网站:

https://i-blog.csdnimg.cn/blog_migrate/ea9ccdc0c9055cf26aded952a307de81.png

HarmonyOs 应用开发

一、DevEco Studio开发工具介绍

  1. 配置SDK
  2. 安装HarmonyOs SDK
  3. 安装 OpenHarmonyOs SDK
  4. 修改主体颜色
    1. Settings

      搜索

      Appearence

      修改

      Theme

  5. 设置中文开发环境
    1. Settings

      搜索

      Chinese

      勾上中文包

      确定

      OK

  6. 设置字体
    1. Settings

      搜索字体(

      font

      修改字体、字号、行高即可

二、 创建项目

  • 点击新建项目, 选择

    HarmonyOS

    中的

    Empty

    Ability.

  • https://i-blog.csdnimg.cn/blog_migrate/132f4ec161cbd4af6bb20a4b6602d8f0.png

  • 依次填写表单项如下:

  • https://i-blog.csdnimg.cn/blog_migrate/419c3a780bece932a81a91fa2aa8aae1.png

  • 至此项目创建完毕。

三、 研究项目目录结构

基于

JS

开发鸿蒙

APP

应用需要关注的目录结构:

MyApplication01/entry/src/main/js/

https://i-blog.csdnimg.cn/blog_migrate/a0e7190bfa9899897b67fdde7e5e97d7.png

说一下涉及到的文件及文件夹:

default:

common [ 文件夹 ]主要用于存放项目所需要用到的资源:图片、音频、视频等文件
i18n [ 文件夹 ]主要用于存放国际化相关的资源
pages [ 文件夹 ]主要用于存放项目所有的页面。项目默认有一个 index 文件夹表示首页
app.js [ 文件 ]全局核心的主 js 文件

四、 编写页面内容

鸿蒙

App

的一个页面写在

目录下包含三个子文件:

index.css该文件用于编写 css 样式,来定义 hml 文件中组件的样式该文件中编写的内容主要用于定义页面的结构
index.html该文件用于编写动态控制页面内容、样式的代码
index.js文件夹中,每一个页面一个子文件夹。新项目默认有一个页面

五、 文件中的常用组件

鸿蒙系统提供了很多组件用于编写页面结构,也提供了非常详细的官方文档教程,主要有以下两个站点:

  1. 登录鸿蒙官网

    开发

    应用开发

    文档

    指南

    左侧开发

    基于

    JS

    开发

    UI

    开发

    基于

    JS

    扩展的类

    WEB

    发范式

    常见组件开发指导

  2. 登录鸿蒙官网

    开发

    应用开发

    文档

    API

    参考

    左侧手机、平板、智慧屏

    组件参考(基于

    JS

    开发范

    式)

六、 组件

这里主要的考察的是查文档的能力, 里面是HarmonyOs的JS API文档

找起来还真有一点难找, 要熟悉

网站:

https://i-blog.csdnimg.cn/blog_migrate/0205e4743ad0382db2925a676b87716c.png

1、text组件

text

组件用于编写文本,基本结构:

<text class="xxx">文本文本文本</text>

网站:

2 、input组件

Input

是交互式组件,用于接收用户数据。其类型可设置为日期、多选框和按钮等。

<input	style="background-color: #bbb;"
type="text" placeholder="请输入手机号"></input>

3 、image组件

4 、search组件

七、 远程真机测试环境

配置HarmonyOs远程真机测试环境

  1. 开发工具右上角 选择设备:

Device Manager

(设备管理器)

  1. 选择

Remote Device

远程真机设备。

  1. 选择

Phone

,点击

sign in

按钮登录华为账号。

看到手机列表,选择一个

API version 6

的手机即可启动远程真机测试设备

确认项目的编译版本符合真机的

SDK

版本,否则运行不了,需要检查配置文件:

// entry/build.gradle 配置文件
ohos {
compileSdkVersion 7
defaultConfig {
compatibleSdkVersion 7
}
...
}
  • 需要这两个版本号改一下(6),改成与手机适配的版本,当然需要注意项目版本不能超过手机

    SDK

    版本。

  • 修改完毕后,需要点击黄色提示条中的

    Sync Now

    按钮,重新编译项目即可。

  • 至此即可点击设备管理器右侧的启动按钮,将项目打包安装到手机中。

  • 若提示没有签名

    SIGNATURE

    ,需要在开发工具中配置签名。

https://i-blog.csdnimg.cn/blog_migrate/535f26075e6f349267d7ebc9ab002f81.png

为当前项目配置签名

选择文件

选择项目结构

选择

Project

下的

Signing Confifigs

Automatically generate signature

打个勾即可完成项目签名。

可以继续编译项目安装到手机中了。

HarmonyOs项目

一、集合优点

HarmonyOs开发中肯定是借鉴开源的前端架构, 然后封装了很多自己组件和API, 好的地方就是学起来与之前常见的Vue、小程序等都很相似, 但是在命名上面各有特色, 以及新属性的添加

优势: HarmonyOs用来华为手机中, 除了常用的API之外, 与HarmonyOs系统之间有丰富的API, 这就使得与手机操作系统之间的联系更加的紧密

比如: 日志、

MVVM

模式

MVVM 模式 ( Model - View - ViewModel )
Model : 模型层 (存储数据)
View : 视图层 (呈现 UI )

在页面中使用

js

模型对象中数据的方式 : 基本上与微信小程序一致

内容数据绑定

databind.hml
<text>{{name}}</text>
<text>{{age+10}}</text>

// databind.js
data: {
name: '张三',
age: 15
}

属性数据绑定

<image src="{{url}}"></image>

data:{
url: '/common/images/1.jpg'
}

样式数据绑定

<div class="nav">
<div class="{{current==0?'active':''}}" @click="clickItem(0)">
<text>基本信息</text>
</div>
<div class="{{current==1?'active':''}}" @click="clickItem(1)">
<text>项目经验</text>
</div>
<div class="{{current==2?'active':''}}" @click="clickItem(2)">
<text>自我评价</text>
</div>
</div>

// data中定义当前页面所需要的一些模型数据
data: {
current: 1, // 用于保存当前导航选中项的下标
},
/** 定义一个方法,方法名clickItem,用于处理导航项的点击事件
* 该方法将会传入一个参数,在此需要声明一个形参接收该参数,执行代码 * */
clickItem(i){
this.current = i
},

列表渲染

<div class="movie-item" for="{{movies}}">
<text>电影ID:{{ $item.id }}</text>
<text>电影名称:{{ $item.name }}</text>
<text>电影主演:{{ $item.actors }}</text>
<text>电影评分:{{ $item.score }}</text>
</div>

data:{
movies: [
{id:1, name:'哥,你好', score:9.5, actors:'马丽'},
{id:2, name:'妈妈', score:9.3, actors:'吴彦姝'},
{id:3, name:'独行月球', score:9.1, actors:'沈腾、马丽'},
{id:4, name:'明日战记', score:9.0, actors:'古天乐、刘青云'},
]
}

二、src/main/config.json基础配置

"module": {
    ......
    ......
    "js": [
      {
        "pages": [                        
          "pages/index/index",
          "pages/databind/databind"
        ],
        "name": "default",
        "window": {
          "designWidth": 720,
          "autoDesignWidth": true
        }
      }
    ]
}

pages用于定义项目所有的页面。一个页面对应一个路由路径。

如果新建了一个新的页面,需要在该配置项中添加一个路径做对应,才可以被鸿蒙当做是一个页面来看待。

window配置项用于定义窗口的参数标准。

1、列表渲染

<!-- xxx.hml -->
<div class="array-container" style="flex-direction: column;margin: 200px;">
    <!-- div列表渲染 -->
    
    <!-- 默认$item代表数组中的元素, $idx代表数组中的元素索引 -->
    <div for="{{array}}" tid="id" onclick="changeText">
        <text>{{$idx}}.{{$item.name}}</text>
    </div>
    
    <!-- 自定义元素变量名称 -->
    <div for="{{value in array}}" tid="id" onclick="changeText">    
        <text>{{$idx}}.{{value.name}}</text>
    </div>
    
    <!-- 自定义元素变量、索引名称 -->
    <div for="{{(index, value) in array}}" tid="id" onclick="changeText">    
        <text>{{index}}.{{value.name}}</text>
    </div>
    
</div>

2、发送http请求

import http from '@ohos.net.http';
let httpRequest = http.createHttp();
let url = '请求路径'
let option = {设置请求参数,消息头,请求参数,超时时间等}

httpRequest.request(url, option, (err, data)=>{
    如果err==false        请求成功
    如果err返回了错误消息   则请求失败
})

如果希望通过这段API发送http请求,还需要在config.json中声明权限,并声明允许明文传输。(默认http模块仅仅支持https请求)

1. 声明允许明文传输:支持http请求:
"deviceConfig": {
       "default": {
         "network": {
           "cleartextTraffic": true
         }
       }
     },
2. 声明网络权限:
   "js": [
       {
           "pages": [
               "pages/index2/index"
           ],
           "name": "default",
           "window": {
               "designWidth": 720,
               "autoDesignWidth": true
           }
       }
   ],
   "reqPermissions": [{
       "name": "ohos.permission.INTERNET"
   }]
结果:
httpObj.request('http://bais.com.cn:8001/banner', (err, data)=>{
   console.info('-------------1----------------'+err)
   console.info('-------------2----------------'+JSON.stringify(data))
   this.banner = JSON.parse(data.result)
   })
//data.result返回的是字符串,而不是`js`对象,所以需要手动转换一下:`JSON.parse(data.result)`

项目请看网址: