首页 > 其他分享 >使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

时间:2025-01-10 15:10:51浏览次数:1  
标签:Taro name 鸿蒙 permission 应用 SDK

作者:京东零售 利齐诺

随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的小程序转换为鸿蒙原生应用。

在 《使用 Taro 开发鸿蒙原生应用》 系列文章中,我们已经介绍了 鸿蒙的基本概念Taro 适配鸿蒙的原理。本文作为该系列的第三篇,将正式为开发者提供一份完整的鸿蒙应用开发指南,帮助大家使用 Taro 开发自己的第一个鸿蒙应用。

 

一、环境配置

首先要准备鸿蒙运行所需的环境,根据参考文档提示的步骤在 HUAWEI DevEco Studio 的 IDE 中完成 MyApplication 项目的创建,熟悉鸿蒙开发者工具的预览查看等功能。

步骤 1:安装、配置 DevEco Studio

1.登录 HarmonysOS 应用开发门户,点击右上角注册按钮,注册开发者帐号;

2.进入 HUAWEI DevEco Studio 套件货架中心,申请白名单,由于目前最新版本的 OpenHarmony SDK 和 IDE 仍未对外开发,因此个人开发者若想尝鲜,需要先申请白名单成为合作伙伴后才能继续进行下面的步骤;

3.白名单申请通过后,进入货架,下载 IDE 版本为 DevEco Studio 4.0.3.700 的 DevEcoStudio4.0-API10 开发套件;

4.下载完成后,打开 IDE 安装包进行安装,安装成功后启动 DevEco Studio,根据 引导 解压套件里附带的 SDK 压缩包,并根据引导在 IDE 中配置好 SDK 的使用路径;

5.SDK 配置成功后,看到设置面板中各个 SDK 的版本号与下面的图片中相同,则标识配置成功了。

 

image

 

步骤 2:创建 Harmony 主项目

1.创建新项目,选择需要开发的设备,然后 Mode 选择 Stage 模型,Compile SDK 选择 4.0.0(API 10),按照引导操作后一个新的项目就被创建出来了;

2.关注目录 entry/src/main/ets/pages/Index.ets 下面的文件,熟悉文件结构。pages 目录下为页面入口,新建项目的页面目录会包含若干个 .ets 文件,应用级配置信息位于 build-profile.json5,当前的模块信息 、编译信息配置项位于 entry/build-profile.json5项目结构详情

3.创建好项目后,根据 配置插件指引,将下载的套件附带的插件配置在项目配置中。

步骤 3:预览 & 调试

DevEco Studio 目前只支持在华为提供的测试真机上进行预览与调试,模拟器调试将在不久后支持。

1. 预览:

用户真机与电脑相连,打开开发者模式,即可在真机看到效果。这里需要注意的是,真机需要使用华为侧提供的测试机,测试机中会安装纯鸿蒙的系统镜像,能够体验到完整的鸿蒙系统功能,纯鸿蒙应用目前还不能完美地在 HarmonyOS 4.0 的商用机侧跑起来。

2. 调试:

链接上真机后,选择好对应的入口模块,在项目代码中打上断点等信息,在编译器中启动调试即可。

 

image

 

相关阅读:《DevEco Studio 使用指南》、《构建第一个 ArkTS 应用(stage 模型)》

二、Taro 开发流程

步骤 1:安装 Taro v4.0.0-beta.x

1. 安装 CLI

安装 v4.0.0-beta.x 版本的 Taro CLI:


npm i -g @tarojs/cli@beta

2. 安装项目依赖

如您是新项目,创建项目时推荐创建编译器为 vite 的模板,若创建项目选择了 webpack 或 webpack5 的模板,则需要手动安装 vite、terser 以及 @tarojs/vite-runner。


$ npm i vite@^4.2.0
$ npm i terser@^5.4.0
$ npm i @tarojs/vite-runner@beta

旧项目需要把 package.json 文件中 Taro 相关依赖的版本修改为 ~4.0.0-beta.0,再重新安装依赖,并添加上述三个和 vite 相关的依赖。

如果安装失败或打开项目失败,可以删除 node_modules、yarn.lock、package-lock.json 后重新安装依赖再尝试。

步骤 2:安装 Taro 适配鸿蒙插件


$ npm i @tarojs/plugin-platform-harmony-ets@beta

步骤 3:修改 Taro 编译配置

config/index.ts


config = {
  // 配置使用插件
  plugins: ['@tarojs/plugin-platform-harmony-ets'],
  // harmony 相关配置
  harmony: {
    // 将编译方式设置为使用 Vite 编译
    compiler: 'vite',
    // 【必填】鸿蒙主应用的绝对路径,例如:
    projectPath: path.resolve(process.cwd(), '../MyApplication'),
    // 【可选】HAP 的名称,默认为 'entry'
    hapName: 'entry',
    // 【可选】modules 的入口名称,默认为 'default'
    name: 'default',
  },
}

步骤 4:修改鸿蒙主项目的权限配置

根据项目需要在鸿蒙主项目 entry/src/main/module.json5 中所需要使用到的机器权限。


{
  //...
  "requestPermissions": [
    {
      "name": "ohos.permission.VIBRATE"
    },
    {
      "name": "ohos.permission.GET_WIFI_INFO"
    },
    {
      "name": "ohos.permission.GET_NETWORK_INFO"
    },
    {
      "name": "ohos.permission.SET_NETWORK_INFO"
    },
    {
      "name": "ohos.permission.INTERNET"
    },
    {
      "name": "ohos.permission.GET_BUNDLE_INFO"
    },
    {
      "name": "ohos.permission.LOCATION"
    },
    {
      "name": "ohos.permission.APPROXIMATELY_LOCATION"
    },
    {
      "name": "ohos.permission.LOCATION_IN_BACKGROUND"
    }
  ]
}

步骤 5:编译运行

package.json 里添加以下的 scripts 命令,运行命令,Taro 可将打包结果生成到配置的鸿蒙主项目路径中。


"scripts": {
    "build:harmony": "taro build --type harmony",
    "dev:harmony": "npm run build:harmony -- --watch"
}

步骤 6:预览 & 调试

开发者可根据上面运行鸿蒙 demo 项目的方式进行预览与调试。

三、注意事项

1. 样式

布局

鸿蒙没有实现盒子模型,因此目前在实现上是使用鸿蒙的 Flex 和 Column 实现的。

尺寸单位

目前 Taro 转鸿蒙支持使用 px、vw、vh 作为数据的单位,诸如 rem、em 等单位则暂时不支持。

2. 调试

真机调试

当前,真机调试需要使用华为侧提供的测试机,测试机中会安装纯鸿蒙的系统镜像,能够体验到完整的鸿蒙系统功能,纯鸿蒙应用目前还不能完美地在 HarmonyOS 4.0 的商用机侧跑起来。

SDK 版本问题

由于鸿蒙侧迭代 SDK 的速度较快,目前 Taro 适配的 SDK 版本为最新的 API 10 版本,对于 API 版本为 9 的鸿蒙项目可能会存在组件和 API 的不兼容和不支持。

3. 与小程序的差异

当下,虽然 Taro 适配鸿蒙 ArkTS 的工作已经基本完成,但在适配过程中,我们也发现了一些暂时无法解决或者计划后续解决的遗留问题。

组件和 API

由于鸿蒙平台和小程序平台本身就存在着较大的差异,因此一些小程序的组件和 API 规范,在鸿蒙平台会没有办法重新实现,如与登录和账号信息相关的 API 以及 live-player 等和直播相关的组件。

样式解析存在一定的限制

由于在 ArkTS 中,会使用声明式 UI 来对 UI 的样式进行描述,因此不存在 sass 和 css 等样式文件,因此 Taro 在适配鸿蒙 ArkTS 时,会在编译时去解析这些样式文件。并将这些样式以内联的方式写入到组件的 TS/JS 代码中。

正常的样式基于 W3C 规范,存在着类名级联和样式继承的行为,由于开发者在代码中的写法各异,Taro 没有办法在编译时获取准确的节点结构以及节点类名信息,因此无法支持这两种行为。

另外,由于样式的解析是基于组件文件的纬度的,因此样式文件只能应用于被其引用的组件文件中,而不能跨文件应用,并且样式文件也只支持类选择器。

 

四、总结

本指南详细介绍了鸿蒙运行环境的配置、使用 Taro 开发鸿蒙应用的步骤和注意事项。我们希望,开发者们通过本指南,可以快速上手并高效开发自己的鸿蒙应用,顺利的进入到鸿蒙应用开发的新领域。

让我们一起开启鸿蒙应用开发的新篇章吧!

标签:Taro,name,鸿蒙,permission,应用,SDK
From: https://www.cnblogs.com/Jcloud/p/18664028

相关文章

  • streamlit实现聊天机器人应用,掌握使用Python构建好看web的页面
     第一个可视化的大模型应用。实现一个带有可视化界面的聊天机器人应用,可以将我们之前实现的聊天机器人转化为一个更加直观、用户友好的,我们的第一个可视化的大模型应用。通过使用Streamlit,我们借助st.columns、st.container、st.chat_input和st.chatmessage等streamlitAPl......
  • 看板协作工具的实际应用技巧
    在当今瞬息万变的市场环境中,经纪人团队的工作特点注定了对时间、沟通与效率的极致要求。无论是房产经纪、演艺经纪还是其他领域,经纪人每天都需要管理复杂的信息流,包括客户需求、市场变化、合同进度以及团队协作。如何在高压环境下保持井然有序并迅速应对,是每个经纪人团队都必须解......
  • 一文告诉你什么是WBS——附应用方案
    一、定义与原理WBS(WorkBreakdownStructure),即工作分解结构,是一种项目管理方法,它将一个复杂的项目或任务按照一定的原则分解成更小、更具体的部分,以便于管理和执行。这种分解过程类似于因数分解,从项目整体开始,逐级细分,直到每个部分都足够具体、易于管理为止。二、构成因子WBS......
  • 详解SonarQube Web API的使用方法以及典型应用场景(内附python代码)
    SonarQubeWebAPISonarQube的WebAPI是一组HTTPRESTAPI,允许开发人员与SonarQube服务器进行交互。这些API涵盖了SonarQube的各个方面,包括项目管理、问题管理、质量规则和指标等。我们可以在SonarQube的帮助菜单中查看相关使用信息,如下图所示:典型应用场景SonarQubeAPI可......
  • 从原理到应用:专业解读负载箱
    负载箱,又称为负荷箱或测试负载,是一种用于模拟实际负载条件的设备。它广泛应用于电力系统、电子设备、通信设备等领域,用于测试和验证各种设备的电气性能和稳定性。从原理上讲,负载箱通过内部电阻或电感元件来消耗电能,从而模拟实际负载条件。当被测设备(如发电机、变压器、变频器等)向......
  • 微信纯血鸿蒙版正式发布,295天走完微信14年技术之路!
    本文由腾讯技术团队原创分享于鹅厂黑板报,下文有排版优化。1、写在前面直至现在,「微信鸿蒙版」这五个字,依然被赋予着太多意义。这是一款产品,也不仅仅是一款产品。开发它的本质,是让两个高速前进,相互影响的复杂系统,彼此磨合和熟悉,像是执行一场空中加油任务。不管外界如何评价和......
  • Streamlit,Streamlit会话及使用指南,将Streamlit部署到云端,通过Streamlit实现聊天机
    Streamlit介绍Streamlit是一个开源的Python库,专为快速创建数据可视化Web应用而设计。它的核心优势在于能够将简单的Python脚本迅速转换成交互式的Web应用,从而使数据科学家和工程师能够以最少的前端开发投入分享他们的数据分析成果。我们本门课程使用Streamlit构建我们的实战项目......
  • 改造应用从容器tomcat迁移到pas(信创容器中间件)的适配工作
    背景近年来由于信创要求的重视,软件国产化越来越要提上日程了,相信在相关行业的人已经有很多开始在准备信创相关适配改造工作了吧我们公司也一样,经过2个月的研究终于算是把我们的主要产品改造成功,下面我就介绍下:我们无源代码的tomcat容器应用如何迁移到普元Pas正文由于不方面说......
  • CountDownLatch应用
    使用CountDownLatch可以实现一种等待/通知机制,但它与对象锁(synchronized)的用途和行为有所不同。CountDownLatch主要用于使一个或多个线程等待其他线程完成一系列操作。当你提到“方法A调用时,对象锁锁着,方法B等待释放”,这通常是指通过synchronized块或方法来实现的互斥访问。......
  • Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用
    全文链接:https://tecdat.cn/?p=38708原文出处:拓端数据部落公众号分析师:YulingFang信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题。客户关系管理的关键是客户分群,通过客户分群,区分无价值客户和高价值客户,同时更好的了解客户的特征,使企......