怎么开始呢
进入鸿蒙 OS 官网,下载 HUAWEI DevEco Studio
之后直接预览下载的压缩包,并点击这个可执行文件
等待几秒后,出现这样的界面,点 Next >
选择一个安装路径,不要安装在系统盘哦
进行一些安装前的初始化设置,依次是桌面添加快捷方式,更新环境变量,鼠标右键菜单增加选项,我们先只选第一个
下一步是选择项目的默认目录,没什么用,直接 Install
安装完成后,点 Finish
,然后找到快捷方式
双击打开,点击 Agree
弹出提示,看到了熟悉的 npm
,大意就是这个开发工具需要 npm
,你要配置下载源,默认值给的是华为源,那不用管,右下角直接确定
下一步是装 SDK,路径不要选系统盘
确认一下信息
同意,然后等待几分钟下载安装
安装完成后,我们创建一个项目试一下
选择一个模板,选哪个参考 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/device_template-0000001053702407,作为一个 JavaScript 攻城狮,那我们肯定找个 JS 的,选这个吧
配置下项目初始信息
打开项目后,按下 Alt + 3
,打开预览,得到如下的页面
动手做一个计算器吧
简单的需求分析
首先看看华为自带的计算器长啥样吧
右上角有一个更多了,可以选择科学计数法和历史记录,这里我们只做历史记录
中间是输入内容以及计算结果的显示区域
下半部分是计算器的按钮区域
看看文档
回到开发工具中,Harmony JS 应用的目录结构见 https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-framework-file-0000000000611396
需要关注的几个文件和文件夹就是
1 | /entry/src/main/js/default/app.js 用于全局JavaScript逻辑和应用生命周期管理 |
关于 HML
、 CSS
和 JS
语法请参考文档
如果你开发过小程序或者 vue 应用,那你可能只需要关注下这几点
hml
- 事件绑定
- 模板引用
css
- 尺寸单位
- 选择器(看看一共有几个)-伪类
:waiting
- 样式预编译
js
- 全部都看
直接开始
将项目中的 /entry/src/main/js/default/pages/index 中不需要的代码删除
hml 中只保留这部分
1 | <div class="container"> |
我们稍作改动,计算器最上边不需要显示文字,只有右上角显示一个更多的图标
1 | <div class="top-tool-bar"> |
1 | .container { |
我们裁剪下上面那张华为计算器的图,使用 PhotoShop 保留右上角的图标,并将其底色置为透明,尺寸裁剪为 48 * 48 (下图为 96)
使用 input 组件给数值展示区域和结果区域预留两个位置
接下来造数据用于渲染键盘区域
1 | const typeDict = { |
hml body 区域
1 | <!-- 最上方 --> |
css 新增
1 | .result { |
它不支持动态绑定 class,很不灵活,所以模板写的很恶心,如果布局非常复杂就会很难实现,flex 布局表现也和 chrome 不一致,感觉直接用宽高进行定义比较好
keyboard-button 是我添加的自定义组件,为了应付它不支持动态 class 的问题
keyboard-button.hml
1 | <div> |
keyboard-button.css
1 | button { |
keyboard-button.js
1 | export default { |
最后的预览图长这个样子
试一下系统能力,点击按钮长震动,由于我们是自定义组件,所以需要触发自定义事件
在 keyboard-button 组件中,触发自定义事件 click,参数为 this.text
1 | this.$emit("click", this.text); |
index.hml
1 | <keyboard-button @click="handleClick"></keyboard-button> |
index.js
1 | import vibrator from "@system.vibrator"; |
真机试验
上真机试验效果,怎么上真机呢,先拿数据线把手机连接上电脑,手机打开 开发者模式,打开 USB 调试,选择传输文件
之后可以看这篇文档 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404
真机安装上 app 后,点击按钮并没有震动,查文档发现需要在 config.json
里加入这样一条
1 | { |
之后再编译运行,点击按钮就可以震动了!
1 | 示例代码 |
下次让我们在 HarmonyOS 来了,如何开发一个鸿蒙应用,上篇 相遇吧