uni-app 开发华为鸿蒙HarmonyOS NEXT初体验

server/2024/9/22 22:47:16/

引言

随着华为鸿蒙系统的不断发展,越来越多的开发者开始尝试使用uni-app来开发跨平台应用,特别是针对华为最新的HarmonyOS NEXT版本。本文将分享我在使用uni-app开发HarmonyOS NEXT应用的一些经验和心得,并提供具体的代码示例。

1. 开发环境准备

1.1 安装必备工具

为了开始开发,你需要安装以下工具:

  1. Node.js:推荐使用LTS版本。
  2. uni-app CLI:可以通过npm安装。
  3. DevEco Studio华为官方IDE,支持鸿蒙开发。
  4. HBuilderXuni-app推荐的IDE,支持鸿蒙离线SDK。

1.2 配置IDE

  1. 打开HBuilderX,点击上方菜单 - 工具 - 设置 - 源码视图 - 用户设置。
  2. 配置鸿蒙离线SDK(sdk由uniapp提供):
    • 下载uni-app鸿蒙离线SDK,例如template-1.3.4.tgz
    • 解压并配置到HBuilderX中。

1.3 创建项目

  1. 新建一个空白的uniapp项目,选择Vue3版本。
  2. 选择uni-ui模板,便于快速构建界面。

2. 开发过程

2.1 项目初始化

  1. 配置项目名称、描述等基本信息。
  2. 选择目标平台:在项目配置中选择支持HarmonyOS。
初始化项目命令行示例

bash

深色版本

1# 全局安装uni-app CLI
2npm install -g @dcloudio/uni-cli
3
4# 创建一个新的uni-app项目
5uni init my-harmonyos-app --template https://github.com/dcloudio/uni-app-template-harmonyos
6
7# 进入项目目录
8cd my-harmonyos-app

2.2 编写代码

页面布局示例
  1. 使用uni-app的组件和样式来构建界面

pages/index.vue

vue

深色版本

1<template>
2  <view class="container">
3    <view class="header">
4      <text class="title">Hello HarmonyOS</text>
5    </view>
6    <view class="content">
7      <button type="primary" @click="showToast">点击我</button>
8    </view>
9  </view>
10</template>
11
12<script>
13export default {
14  methods: {
15    showToast() {
16      uni.showToast({
17        title: '这是个提示',
18        icon: 'none'
19      });
20    }
21  }
22}
23</script>
24
25<style scoped>
26.container {
27  display: flex;
28  flex-direction: column;
29  align-items: center;
30  justify-content: center;
31}
32
33.header {
34  padding: 20rpx;
35}
36
37.title {
38  font-size: 32rpx;
39  color: #333;
40}
41</style>

2.3 调试与测试

  1. 使用DevEco Studio内置模拟器:DevEco Studio提供了鸿蒙模拟器,方便进行调试。
  2. 真机调试:通过USB连接华为设备,使用DevEco Studio进行真机调试。
调试步骤
  1. 打开DevEco Studio,选择你的项目。
  2. 在模拟器列表中选择一个设备模拟器。
  3. 点击运行按钮,在模拟器上运行你的应用。

3. 特色功能体验

3.1 实况窗

HarmonyOS NEXT提供了改进的实况窗功能,可以创建更丰富的桌面小部件。

实现实况窗示例
  1. 创建实况窗:需要在manifest.json文件中定义实况窗。
  2. 编写实况窗逻辑:使用特定的API来更新实况窗的内容。

manifest.json

json

深色版本

1{
2  "pages": [
3    "pages/index/index",
4    ...
5  ],
6  "subPackages": [],
7  "window": {
8    "backgroundTextStyle": "light",
9    "navigationBarBackgroundColor": "#fff",
10    "navigationBarTitleText": "Hello HarmonyOS",
11    "navigationBarTextStyle": "black"
12  },
13  "usingComponents": {},
14  "harmonyos": {
15    "appType": "ohos",
16    "quickApp": {
17      "quickAppList": [
18        {
19          "name": "pages/index/index",
20          "icon": "static/icon.png",
21          "type": "service",
22          "title": "Hello HarmonyOS"
23        }
24      ]
25    }
26  }
27}

3.2 锁屏大卡片

锁屏大卡片让用户无需解锁手机即可查看重要信息,增强了用户体验。

锁屏大卡片示例
  1. 定义锁屏大卡片:在manifest.json中添加锁屏大卡片配置。

manifest.json

json

深色版本

1"harmonyos": {
2  "lockScreenWidget": {
3    "enable": true,
4    "icon": "static/icon.png",
5    "title": "Hello HarmonyOS",
6    "type": "service",
7    "pagePath": "pages/index/index"
8  }
9}

3.3 通知服务

改进的通知服务让开发者能够创建更丰富、更互动的通知体验。

通知服务示例
  1. 发送通知:使用uni-app的通知API。

main.js

javascript

深色版本

1// 发送通知
2function sendNotification(title, content) {
3  uni.showNotification({
4    title: title,
5    content: content
6  });
7}
8
9// 示例调用
10sendNotification('新消息', '你有一条新的未读消息');

4. 发布应用

  1. 打包:使用DevEco Studio或HBuilderX进行应用打包。
  2. 签名:生成数字证书,对应用进行签名。
  3. 发布:将应用提交至华为应用市场或其他渠道。

5. 心得体会

5.1 开发体验

  • 统一的开发体验uni-app提供了良好的跨平台支持,使得开发HarmonyOS NEXT应用变得非常简单。
  • 文档齐全:无论是uni-app还是华为提供的文档都非常详尽,学习曲线相对平缓。

5.2 性能与兼容性

  • 性能优秀:HarmonyOS NEXT在性能上有明显提升,运行流畅。
  • 兼容性好uni-app支持多种平台,确保应用可以在不同设备上正常工作。

5.3 社区支持

  • 活跃的社区uni-app和HarmonyOS NEXT都有活跃的开发者社区,遇到问题时可以快速得到解答。

6. 结论

通过本次初体验,我对使用uni-app开发HarmonyOS NEXT应用有了更深的认识。HarmonyOS NEXT带来的新特性不仅提升了用户体验,也为开发者提供了更多的可能性。如果你也对开发HarmonyOS NEXT应用感兴趣,不妨一试!


http://www.ppmy.cn/server/102230.html

相关文章

数据结构详细教程绪论

&#x1f30f;个人博客主页&#xff1a;意疏-CSDN博客 希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 阅读指南&#xff1a; 开篇说明一、数据结构绪论 开篇说明 数据结构是计算机科学中的…

1.Java基础概念-注释和关键字

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words&#xff01; 注释是在程序的指定位置…

Browserless 网页抓取:在 Selenium 中使用 NodeJs

Selenium 是否有效&#xff1f; Selenium 是一个流行的开源网页自动化框架&#xff0c;主要用于浏览器测试自动化。此外&#xff0c;它也可以用来解决动态网页抓取问题。 Selenium 有三个主要组件&#xff1a; Selenium IDE&#xff1a;一个浏览器插件&#xff0c;提供了一种…

XML外部实体注入

1.DTD实体及引用 DTD(文档类型定义)是一种用于定义XML文档结构和元素约束的方法。它可以描述一个XML文档的元素、属性、实体、注释等&#xff0c;从而规定了文档的结构和语法规则。DTD 通常是一个单独的文件&#xff0c;可以被多个XML文档所共享。 而在DTD中&#xff0c;实体…

当链表反转时,ListNode newHead = head;无法将原链表保存的原因

当使用链表的过程中反转链表的操作时&#xff0c;我们会发现ListNode newHead head;提前保存的链表的头节点并没有保存下来&#xff0c;而是发生了变化&#xff0c;那这是为什么呢&#xff1f; 在链表反转的过程中&#xff0c;传入的head节点&#xff08;即原链表的头节点&am…

MySQL 安装与配置指南

MySQL 是一种广泛使用的关系型数据库管理系统&#xff0c;为各种应用程序提供高效的数据存储和管理解决方案。本文将介绍如何在不同的操作系统中安装 MySQL&#xff0c;以及如何进行基本的配置&#xff0c;以确保数据库系统的最佳性能和稳定性。 一、环境准备 1.1 系统要求 …

牛客网SQL进阶129 :月均完成试卷数不小于3的用户

月均完成试卷数不小于3的用户爱作答的类别_牛客题霸_牛客网 0 问题描述 基于试卷作答记录表exam_record、试卷信息表examination_info &#xff0c;统计出 “月均完成试卷数”不小于3的用户作答的类别及作答次数&#xff0c;按次数降序输出。 1 数据准备 drop table if exis…

python动画:三维空间中创建各种形状和场景【下】

一&#xff0c;曲面 三维曲面是指在三维空间中定义的曲面&#xff0c;其通常用数学方程来描述。三维曲面的例子包括平面、球面、圆柱面、锥面等。它们可以通过参数方程或隐式方程进行定义。 常见的三维曲面类型 平面&#xff1a; 形式&#xff1a;( )例子&#xff1a;( ) 球…