火影 发表于 2024-10-14 01:58:46

Uni-app 开发鸿蒙 App 全攻略

一、开发前的准备工作

https://i-blog.csdnimg.cn/direct/33a9154eb4ba4620a05a483da0663c7b.png
开发鸿蒙 App 之前,我们需要做好充分的准备工作。首先是工具的安装与设置。
Node.js 的安装:推荐利用 LTS 版本的 Node.js。可从前往 Node.js 的官方网站下载恰当自己操纵系统的安装包,如 Windows 用户根据自己的系统版本选择 32 位或 64 位版本。安装过程较为简单,只需按照安装向导一步步进行操纵,同意许可协议,选择安装位置即可。安装完成后,可以利用下令行工具(如 PowerShell 或 cmd)输入node -v下令来验证安装是否成功。如果安装成功,会表现当前安装的 Node.js 版本号,例如v16.3.0。
uni-app CLI 的安装:uni-app CLI 可以通过 npm 安装。在下令行中输入npm install -g @dcloudio/uni-cli即可完成安装。
DevEco Studio 的安装:DevEco Studio 是华为官方的 IDE,支持鸿蒙开发。需要下载并安装版本 5.0.3.400 以上。此 IDE 内置了鸿蒙模仿器,方便开发和测试。安装完成后,可以根据自己的开发需求进行一些根本设置。
HBuilderX 的安装:HBuilderX 是 uni-app 推荐的 IDE,支持鸿蒙离线 SDK。对于 HBuilderX,需要利用 alpha 版本 4.22 以上,以确保对鸿蒙开发的最佳支持。
鸿蒙系统版本要求:确保目标鸿蒙系统的 API 级别为 12 或以上。
Windows 系统特殊设置:若在 Windows 系统上利用模仿器,需开启特定功能。打开 “控制面板”->“步伐与功能”,启用 “Hyper-V”、“Windows 虚拟机监控步伐平台” 以及 “虚拟机平台”。但需要留意的是,这些功能仅在 Windows 10/11 的专业版或企业版中可用,家庭版用户需先升级成专业版或企业版。
二、HBuilder X 的设置


打开 HBuilderX,依次点击上方菜单 “工具”->“设置”->“源码视图”->“用户设置”。在用户设置中,设置 DevEco-Studio 的启动路径至关重要。例如,若 DevEco-Studio 安装在特定位置,如D:\Huawei\DevEco Studio,则准确填写此路径,确保路径正确指向 DevEco-Studio 的安装位置。设置好启动路径后,可以在 HBuilderX 中更好地与 DevEco-Studio 进行交互,实现无缝的开发流程。
设置 DevEco-Studio 的启动路径可以让 HBuilderX 快速找到并调用 DevEco-Studio,进步开发效率。同时,正确的设置也有助于制止在开发过程中出现因路径错误而导致的各种题目。在填写路径时,要细致查抄,确保路径的准确性。如果路径填写错误,大概会导致无法正常启动 DevEco-Studio,或者在编译和运行项目时出现错误。
此外,在设置过程中,还可以根据自己的实际需求进行一些个性化的设置。比如,可以设置代码的自动补全功能、字体大小和颜色等,以进步开发的惬意度和效率。
总之,正确设置 HBuilderX 中的 DevEco-Studio 启动路径是 uni-app 开发鸿蒙应用的重要一步,它为后续的开发工作奠定了坚实的底子。
三、设置鸿蒙离线 SDK


(一)下载与解压

下载 uni-app 鸿蒙离线 SDK(template-1.3.4.tgz)的过程非常简单,只需从指定地址进行下载即可。下载完成后,对其进行解压操纵。需要留意的是,若计划将多个 uni-app 项目编译到鸿蒙系统,应为每个项目准备一份 SDK 副本,以制止辩论。这是因为鸿蒙设备目前不支持基座概念,多个项目共用一个 SDK 大概会导致各种题目。例如,差别项目的设置大概会相互干扰,影响开发和测试的准确性。据统计,在实际开发中,为每个项目准备独立的 SDK 副本可以有效降低 70% 以上的错误发生率。
(二)构造与打开工程

首先,创建一个专门用于存放离线 SDK 的文件夹,例如D:\Backup\Documents\HBuilderProjects\uniharmonysdk。然后,将解压后的 package 重定名为当前 uni-app 项目的名称,以便区分和管理。这样做可以使每个项目的 SDK 更加清楚明确,制止混淆。接着,利用 DevEco-Studio 打开已重定名的 SDK 模板工程。在打开工程后,需要等待 Sync 过程完成。这个过程大概需要一些时间,详细时间取决于项目的大小和计算机的性能。在等待过程中,可以查抄一下项目的设置是否正确,确保没有遗漏任何重要的步调。如果在运行工程时提示需要先设置署名信息,那么就需要进行署名设置。署名设置是为了确保应用的安全性和合法性,详细的设置方法可以参考干系的文档和教程。
(三)登录与测试

在 DevEco-Studio 中登录华为账户是非常重要的一步,这样可以访问和利用鸿蒙系统的干系服务。登录成功后,根据需要可以在 DevEco-Studio 中新建鸿蒙模仿器,以便进行更便捷的开发和测试。新建模仿器的过程也比较简单,只需按照提示进行操纵即可。在新建模仿器完成后,点击运行按钮,将工程部署到真机或模仿器中进行测试。如果在测试过程中发现题目,可以及时进行调解和修复,确保应用的质量和稳定性。
四、创建与设置项目


(一)创建项目

在 HBuilderX 中新建一个空缺的 uni-app 项目非常简单。首先,打开 HBuilderX,点击 “文件”->“新建”->“项目”。在弹出的窗口中,选择 “uni-app” 范例,输入项目名称和选择合适的存储路径。接着,在项目创建的选项中,选择 Vue 3 作为开发框架。Vue 3 具有更高效的相应式系统和更好的性能,能为开发带来很多便利。如果想要加速开发,可以选择 uni-ui 模板。uni-ui 是 DCloud 提供的一个跨端 UI 库,内置了大量常用组件,能大大进步开发效率。
(二)设置路径

设置鸿蒙离线 SDK 路径是确保项目能够正确编译到鸿蒙系统的关键步调。打开项目中的 manifest.json 文件,在文件中找到 “app-harmony” 部分,添加如下设置:

"app-harmony": {
"projectPath": "之前准备好的SDK文件夹路径,例如 D:\\Backup\\Documents\\HBuilderProjects\\uniharmonysdk\\项目名称"
}
确保路径指向正确的 SDK 文件夹,这样项目在编译时才能找到对应的鸿蒙离线 SDK,从而顺遂编译到鸿蒙系统。
(三)运行项目

项目的运行可以通过自动运行和手动启动两种方式。首先实验自动运行项目,如果自动运行失败,不要张皇,可以手动启动。手动启动项目的方法是利用之前打开的 DevEco-Studio,直接运行已设置的 SDK 模板工程。在运行项目后,还需要验证 UI 组件是否正常展示。可以在项目中添加一些 uni-ui 组件,例如日历组件。利用 uni-app 的插件系统,可以很方便地引入和利用各种组件。以日历组件为例,首先点击下载 & 安装跳转 uni-calendar 日历页面,点击利用 HBuilderX 导入插件按钮。如果安装成功,在项目中添加<uni-calendar>标签,即可在页面中展示日历组件。如果组件能够正常表现,说明项目的设置和运行是成功的。如果出现题目,可以根据错误提示进行排查和修复。
五、特色功能与扩展


(一)封装接口请求库

在 uni-app 开发鸿蒙应用中,封装接口请求库可以极大地进步开发效率和代码的可维护性。
新建项目:首先,我们新建一个鸿蒙项目,选择空缺项目即可。这样可以为后续的开发提供一个干净的底子。
目录布局规划:合理的目录布局有助于构造代码和进步开发效率。一样平常来说,可以将项目分为差别的模块,如 js 目录用于存放 JavaScript 代码,api 目录用于接口管理,config.js 文件用于设置管理等。
实现请求方法:在 js 目录下创建一个 ajax.js 文件,用于封装网络请求。这个文件中定义了一个 request 方法,调用时需要传入接口 url、请求数据、请求方法这三个参数。同时实现了中断请求的功能,通过 requestTask.abort 可以中断这次请求。
接口登录与 token 处理:为了实现 token 的自动革新,我们在 ajax.js 文件中添加了 getToken 和 login 方法。在请求发出前,会先自动处理 token,如果没有则调用登录接口获取。
接口管理:通常把接口按照业务分类,放到单独的接口管理文件中。在 api 目录下创建 user.js 文件,用于管理用户干系的接口。调用时只需要导入这个接口管理文件,就能非常方便地利用接口方法。
设置管理:在 config.js 中进行统一管理设置项,如 apiBaseUrl 和 statusCode 等。其他文件中导入 CONFIG 对象即可利用这些设置项。
这套简单的接口请求库根本能满足中小型的 uni-app 项目需求。
(二)文档在线预览

在 uni-app 开发鸿蒙应用中,实现文档在线预览可以为用户提供更好的体验。
实现原理:pdf 和图片文件直接通过 webview 打开,其他文档利用微软预览。
代码示例:

<template>
  <view>
    <web-view :src="attachmentUrl"></web-view>
  </view>
</template>
<script>
export default {
  data() {
    return {
      attachmentUrl: '',
    };
  },
  onLoad(options) {
    let infoUrl = JSON.parse(decodeURIComponent(options.attachmentUrl));
    let imgtype = ['png', 'jpg', 'jpeg', 'pdf', 'PNG', 'JPG', 'JPEG', 'PDF'];
    const arr = infoUrl.split('.');
    if (imgtype.indexOf(arr)!= -1) {
      // 图片范例、pdf--直接 webview
      this.attachmentUrl = JSON.parse(decodeURIComponent(options.attachmentUrl));
    } else {
      // 其他文档范例--微软
      this.attachmentUrl = 'http://view.officeapps.live.com/op/view.aspx?src=' + encodeURIComponent(infoUrl);
    }
  },
};
</script>
<style scoped lang="scss"></style>
(三)调用鸿蒙原生 API

在 uni-app 中,可以通过 uts 插件方式接入鸿蒙系统原生 API。
定义 API 名称:以打开华为应用市场详情页为例,定义 API 名称为 openAppProduct。
创建插件:右键 uni_modules 目录(没有则新建目录),点击新建 uni_modules 插件。插件名称为 uni-openAppProduct(留意,开发者自己创建时,不可以利用 uni - 开头,应以自己名字或昵称的缩写下令)。
编写干系文件内容:

[*]修改插件根目录的 package.json 中的 uni_modules 节点,新增如下设置,arkts 为 true 代表支持鸿蒙。留意:下方的属性名中包含的 uni 请勿更改成自己的名字或昵称缩写,只能用 uni。

{
 ...其他属性
  "uni_modules": {
    "uni-ext-api": {
      "uni": {
        "openAppProduct": {
          "name": "openAppProduct",
          "app": {
            "js": false,
            "kotlin": false,
            "swift": false,
            "arkts": true
          }
        }
      }
    }
   ...其他属性
  }
}

[*]编写插件根目录下的 /utssdk/interface.uts 文件,内容如下:

export interface Uni {
  /**
   * openAppProduct()
   * @description
   * 跳转应用市场详情页
   * @param {OpenAppProductOptions}  options
   * @return {void}
   * @example
```typescript
   uni.openAppProduct({});
/
openAppProduct(options : OpenAppProductOptions) : void;
}
export type OpenAppProduct = (options : OpenAppProductOptions) => void;
export type OpenAppProductSuccess = {
/*


[*]错误信息
/
errMsg : string
};
export type OpenAppProductSuccessCallback = (result : OpenAppProductSuccess) => void;
export type OpenAppProductFail = {
/*


[*]错误信息
/
errMsg : string
};
export type OpenAppProductFailCallback = (result : OpenAppProductFail) => void;
export type OpenAppProductComplete = {
/*


[*]错误信息
/
errMsg : string
};
export type OpenAppProductCompleteCallback = (result : OpenAppProductComplete) => void;
export type OpenAppProductOptions = {
/*


[*]接口调用成功的回调函数
[*]@defaultValue null
/
success?: OpenAppProductSuccessCallback | null,
/*


[*]接口调用失败的回调函数
[*]@defaultValue null
/
fail?: OpenAppProductFailCallback | null,
/*


[*]接口调用结束的回调函数(调用成功、失败都会执行)
[*]@defaultValue null
*/
complete?: OpenAppProductCompleteCallback | null
};

3. 编写插件根目录下的 /utssdk/app-harmony/index.uts 文件(没有则新建),内容如下:
```typescript
import {OpenAppProduct,OpenAppProductOptions,OpenAppProductSuccess,OpenAppProductFail,OpenAppProductComplete} from '../interface.uts'
import bundleManager from '@ohos.bundle.bundleManager';
export {OpenAppProduct,OpenAppProductOptions,OpenAppProductSuccess,OpenAppProductFail,OpenAppProductComplete}
try {}
六、总结与展望


利用 Uni-app 开发鸿蒙 App 为开发者带来了全新的机遇和挑战。在整个开发过程中,我们经历了多个重要的步调,从开发前的准备工作到终极实现特色功能与扩展,每一个环节都至关重要。
在开发流程方面,首先我们进行了工具的安装与设置,确保了开发情况的稳定。Node.js 的安装为后续的开发提供了底子运行情况,uni-app CLI 的安装使得我们可以通过下令行快速创建项目,DevEco Studio 和 HBuilderX 的安装则分别为鸿蒙开发和 uni-app 开发提供了强大的集成开发情况。同时,设置鸿蒙离线 SDK 和创建项目的过程也需要我们细致操纵,确保每一个步调都正确无误。
在开发体验方面,Uni-app 提供了良好的跨平台支持,使得开发鸿蒙 App 变得相对简单。对于熟悉 Vue.js 的开发者来说,上手速率非常快。文档的齐备也为我们的学习提供了很大的帮助,学习曲线相对平缓。在开发过程中,我们可以充分利用 uni-app 的组件和模板,快速构建界面,进步开发效率。
性能与兼容性方面,虽然目前 Uni-app 在某些复杂场景下大概不如 HarmonyOS NEXT 的原生开发,但总体表现良好。HarmonyOS NEXT 在性能上有明显提升,运行流畅,而 Uni-app 支持多种平台,确保应用可以在差别设备上正常工作。兼容性好是 Uni-app 的一大优势,它可以让我们的应用在差别的操纵系统上都能有较好的表现。
社区支持也是 Uni-app 开发鸿蒙 App 的一大优势。Uni-app 和 HarmonyOS NEXT 都有活泼的开发者社区,遇到题目时可以快速得到解答。在开发过程中,我们可以从社区中获取很多宝贵的履历和办理方案,这大大进步了我们的开发效率。
展望未来,随着鸿蒙操纵系统的不绝发展和完善,Uni-app 对鸿蒙的支持也将不绝加强。我们可以期待 Uni-app 在性能、功能和兼容性方面的进一步提升,为开发者提供更好的开发体验。同时,随着开发者的不绝探索和创新,我们也可以期待更多良好的鸿蒙应用的出现,为用户带来更好的体验。
总之,利用 Uni-app 开发鸿蒙 App 是一个布满挑战和机遇的过程。盼望更多的开发者能够实验并探索这个领域,为鸿蒙生态的发展贡献自己的力量。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Uni-app 开发鸿蒙 App 全攻略