uni-app 开发HarmonyOS的鸿蒙影视项目分享:从实战案例到开源后台
最近,HBuilderX 新版本发布,带来了令人兴奋的消息——uni-app 现在支持 Harmony Next 平台的 App 开发。这对于开发者来说无疑是一个巨大的福音,意味着使用熟悉的 Vue 3 语法和开发框架,就可以为鸿蒙生态贡献自己的力量。
前言
作为一名开发者,我之前完成了一个有趣的项目——一个基于 uni-app 的免费观影 App。经过一番尝试,这个 App 已经成功编译到鸿蒙平台,可以在鸿蒙设备上流畅运行。这不仅为我的学习之路增添了新的成就感,也为想要尝试鸿蒙应用开发的朋友们提供了一个基于uniapp的鸿蒙学习经典案例。
鸿蒙系统的出现,对于广大开发者来说是一个全新的挑战与机遇。使用 uni-app 开发鸿蒙应用,无需从零开始学习鸿蒙的原生开发语言和框架,就可以快速上手,这对于很多非鸿蒙原生开发背景的开发者来说是非常友好的。而对于已经熟悉 uni-app 的开发者来说,开发鸿蒙应用更是如鱼得水,效率大幅提升。
编译成功截图:
关于源uniapp的免费观影app介绍:
参见《uni-app 影视类小程序开发从零到一 | 开源项目分享》:https://blog.csdn.net/yyz_1987/article/details/140575597?spm=1001.2014.3001.5502
项目背景
我的免费观影 App 项目,主要是为了激发学习兴趣,让开发者能够通过实际操作项目,快速看到自己的成果。项目中采用了 Vue 3 的语法和一些常用的前端技术,如 Vuex 管理状态,Vue Router 实现页面跳转,以及一些第三方库来提升用户体验。通过这个项目,开发者不仅能够学习 uni-app 的基本用法,还能够接触到一些常见的前端开发模式和最佳实践。
uniapp观影app项目地址:https://gitee.com/yyz116/imovie
鸿蒙原生版本观影app项目地址:https://gitee.com/yyz116/hmmovie
此外,这个项目还基于开源的golang影视后台服务接口进行开发。这个接口提供了丰富的影视资源数据,包括电影、电视剧、动漫等,开发者可以通过简单的 API 请求获取到这些数据,并在自己的应用中进行展示和播放。为了方便更多爱好者的学习和使用,我决定将这个接口的源代码(基于golang+mongoDB)也开源出来。
后台服务开源地址:https://gitee.com/yyz116/go-imovie
如果不想部署后台服务,则可以联系我,暂时使用我部署好的后台接口服务,但仅限于学习哈,别分享给他人免费看电影。
这个影视后台服务接口采用了 golang的 go-zero微服务 框架进行开发,使用 MongoDB 来存储数据。接口提供了一系列 RESTful API,包括获取电影列表、获取电视剧列表、获取动漫列表、获取影视详情等,还有其他一些方便练习的接口服务如知乎日报,网易云音乐接口。
通过这个项目,开发者不仅可以学习到如何使用 uni-app 开发鸿蒙应用,还可以学习到如何设计和实现一个简单的后台服务接口。这对于想要深入了解全栈开发的开发者来说,是一个非常好的学习机会。
uniapp对鸿蒙的支持
自 HBuilderX 4.27 版本开始,uni-app 支持Harmony Next平台的App开发。目前仅支持 uniapp的vue3 项目或者uniapp-x的项目编译到鸿蒙平台。且只要你的项目中没有使用特定的针对android或其他平台的插件,都可以成功的编译到鸿蒙平台。
兼容性说明
HBuilderX 4.24+ 开始支持运行到鸿蒙平台
鸿蒙开发只支持Vue3、不支持Vue2,不支持plus、但支持nvue
nvue编译到鸿蒙后非原生渲染,而是与web一样渲染(自动注入一些默认样式进行兼容)
Vue3也支持选项式代码风格,参考Vue2升Vue3指南
HBuilderX 4.31+ 构建的鸿蒙运行包不支持 x86_64 平台,会影响到 Windows 系统和部分 Mac 系统的鸿蒙模拟器无法使用,需使用真机调试
HBuilderX 4.41+ 开始运行到鸿蒙设备时支持修改代码后热刷更新
HBuilderX 4.41+ 开始运行到鸿蒙设备时控制台显示的应用日志支持回源代码
HBuilderX 4.43+ 开始支持将 mainfest.json 里面配置的应用版本名称/应用版本号(versionName/versionCode)应用于鸿蒙平台,且优先于 harmony-configs/AppScope/app.json5 中的设置
HBuilderX 4.61+ 开始支持 uni-app x 项目,且支持开启调试功能
HBuilderX 4.61+ 开始支持配置签名证书,且支持自动申请调试证书
开发环境要求
HBuilderX 4.24+ 下载地址
DevEco Studio 下载地址
HBuilderX 4.24+ 要求 DevEco Studio 5.0.3.400+
HBuilderX 4.31+ 要求 DevEco Studio 5.0.3.800+。
HBuilderX 4.61+ 针对 uni-app x 项目要求 DevEco Studio 5.0.7.100+。
uni-app 项目要求鸿蒙系统版本 API 12 以上,uni-app x 项目要求鸿蒙系统版本 API 14 以上(DevEco Studio有内置鸿蒙模拟器)
如果没有符合兼容性要求的模拟器,就需要有真机作为运行设备
环境设置
默认情况下,HBuilderX 会在项目内的 unpackage 目录下游创建鸿蒙工程目录,用于构建鸿蒙的运行包和发行包:
调试运行的时候默认使用的鸿蒙工程目录位于 unpackage/dist/dev/app-harmony
发行打包的时候默认使用的鸿蒙工程目录位于 unpackage/dist/build/app-harmony
在 HBuilderX 中设置 DevEco Studio 的安装位置:
HBuilderX 依赖于 DevEco Studio 里面带的鸿蒙工具链,所以需要电脑已经安装了符合版本要求的 DevEco Studio。
打开HBuilderX,点击上方菜单 - 工具 - 设置,再点击 运行配置,在鸿蒙运行配置中设置 DevEco Studio 的安装路径。
写在最后
总的来说,uni-app 开发鸿蒙应用是一个非常有趣的过程,不仅可以提升开发效率,真正实现一端多发,开发一次全平台运行。还可以为鸿蒙生态做出自己的贡献。我相信,随着 uni-app 和鸿蒙平台的不断发展和完善,未来将会有更多的开发者加入到鸿蒙应用开发的行列中来。如果你也对这个领域感兴趣,不妨尝试一下吧,相信你也会从中获得很多乐趣和收获的!
希望我的分享能够对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言交流。
相关文章:

uni-app 开发HarmonyOS的鸿蒙影视项目分享:从实战案例到开源后台
最近,HBuilderX 新版本发布,带来了令人兴奋的消息——uni-app 现在支持 Harmony Next 平台的 App 开发。这对于开发者来说无疑是一个巨大的福音,意味着使用熟悉的 Vue 3 语法和开发框架,就可以为鸿蒙生态贡献自己的力量。 前言 作…...

售前工作.工作流程和工具
第一部分 售前解决方案及技术建议书的制作 售前解决方案编写的标准操作步骤SOP: 售前解决方案写作方法_哔哩哔哩_bilibili 第二部分 投标过程关键活动--商务标技术方案 1. 按项目管理--售前销售项目立项 销售活动和销售线索的跟踪流程和工具 1)拿到标书ÿ…...

GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践
点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 引言 在边缘计算与AI推理场景中,GPU-NPU异构计算架构已成为突破算力瓶颈的关键技…...
学习ai课程大纲
以下是一个通用的 AI 课程大纲,涵盖从基础到进阶的核心内容,适用于大学课程或自学规划。你可以根据自身需求(如入门、进阶、专项方向)调整内容和深度。 人工智能(AI)课程大纲 第一部分:基础理论…...
基于CentOS7制作OpenSSL 1.1的RPM包
背景:CentOS7 已经不再维护了,有时候需要升级某些组件,网上却没有相关的资源了。尤其是制作OpenSSH 9.6 的RPM包,就会要求OpenSSL为1.1的版本。基于此,还是自己制作吧,以下是踩坑过程。 1、官网提供的源码包…...
数据分析_Python
1 分析内容 1.1 数据的整体概述 提供数据集的基本信息,包括数据量、时间跨度、地理范围和主要字段. import pandas as pd# 创建示例数据 data {姓名: [张三, 李四, 王五, 赵六, 钱七, 孙八, 周九, 吴十],年龄: [25, 30, 35, 40, 45, 50, 55, 60],性别: [男, 男, 女, 女, 男,…...
TCP/UDP协议原理和区别 笔记
从简单到难吧 区别就是TCP一般用于安全稳定的需求,UDP一般用于不那么需要完全数据的需求,比如说直播,视频等。 再然后就是TPC性能慢于UDP。 再然后我们看TCP的原理(三次握手,数据传输,四次挥手࿰…...
深入浅出:C++数据处理类与计算机网络的巧妙类比
深入浅出:C数据处理类与计算机网络的巧妙类比 引言 在计算机编程中,我们常常会遇到一些看似简单的代码结构,却能巧妙地映射到复杂的计算机网络概念中。本文将通过一个简单的C数据处理类,探讨其与计算机网络中硬件设备和协议的类…...

【滑动窗口】LeetCode 209题解 | 长度最小的子数组
长度最小的子数组 前言:滑动窗口一、题目链接二、题目三、算法原理解法一:暴力枚举解法二:利用单调性,用滑动窗口解决问题那么怎么用滑动窗口解决问题?分析滑动窗口的时间复杂度 四、编写代码 前言:滑动窗口…...
在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程
在RK3588上使用NCNN和Vulkan加速ResNet50推理全流程 前言:为什么需要关注移动端AI推理一、环境准备与框架编译1.1 获取NCNN源码1.2 安装必要依赖1.3 编译NCNN二、模型导出与转换2.1 生成ONNX模型2.2 转换NCNN格式三、模型量化加速3.1 生成校准数据3.2 执行量化操作四、性能测试…...
【ant design】ant-design-vue 4.0实现主题色切换
官网:Ant Design Vue — An enterprise-class UI components based on Ant Design and Vue.js 我图方便,直接在 app.vue 中加入的 <div class"app-content" v-bind:class"appOption.appContentClass"><a-config-provider…...
Android 图片自动拉伸不变形,点九
要让 UI 设计师 制作 Android 用的点九图(.9.png),可以按照以下流程和要求进行: 🧩 一、什么是点九图? 点九图(NinePatch)是一种特殊的 PNG 图像,用于在 Android 中根据…...
电子电路:什么是色环电阻器,怎么识别和计算阻值?
识别和计算色环电阻的阻值需要掌握颜色编码规则和基本步骤。以下是具体方法及窍门: 一、色环电阻的基本规则 色环数量: 4环电阻:前2环为有效数字,第3环为倍乘(10ⁿ),第4环为误差。5环电阻:前3环为有效数字,第4环为倍乘,第5环为误差。6环电阻(较少见):前3环为有效数…...
LeetCode Hot100刷题——轮转数组
56. 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: …...

Python绘制南丁格尔玫瑰图:从入门到实战
Python绘制南丁格尔玫瑰图:从入门到实战 引言 南丁格尔玫瑰图(Nightingale Rose Chart),也被称为极区图(Polar Area Chart),是一种独特的数据可视化方式。这种图表由弗洛伦斯南丁格尔ÿ…...
概率与期望总结
一、概率 概念:无需多言;几个公式( Ω \Omega Ω 表示整个样本空间): 以下公式均有 A , B ⊆ Ω , 且 P ( A ) , P ( B ) > 0. P ( A ∪ B ) P ( A ) P ( B ) − P ( A ∩ B ) , P ( A ∣ B ) P ( A B ) P ( B…...

炼丹学习笔记3---ubuntu2004部署运行openpcdet记录
前言 环境 cuda 11.3 python 3.8 ubuntu2004 一、cuda环境检测 ylhy:~/code_ws/OpenPCDet/tools$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Mar_21_19:15:46_PDT_2021 Cuda compilation tools, release 11.3…...

深入解析BGP路由反射器与联邦:突破IBGP全连接限制的两种方案
一、引言:大型BGP网络的挑战 在大型BGP网络架构中,传统的IBGP全连接架构会带来严重的扩展性问题。当网络中存在N台路由器时,需要维护N*(N-1)/2个IBGP连接,这对设备资源和运维管理都是巨大挑战。本文将深入解析两种主流解决方案&a…...

QT设置MySQL驱动
QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 第一步:下载MySQL https://dev.mysql.com/downloads/mysql/ 解压缩下载的安装包,其目录结构如下所示: 第二…...

String的一些固定程序函数
append reverse length toString...

3.2/Q2,Charls最新文章解读
文章题目:Transition of nighttime sleep duration and sleep quality with incident cardiovascular disease among middle-aged and older adults: results from a national cohort study DOI:10.1186/s13690-025-01577-5 中文标题:中老年人…...

大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶-文献精读129
Systematic identification and expression profiles of the BAHD superfamily acyltransferases in barley (Hordeum vulgare) 系统鉴定与大麦(Hordeum vulgare)中 BAHD 超家族酰基转移酶的表达谱分析 摘要 BAHD 超家族酰基转移酶在植物中催化和调控次…...

docker迅雷自定义端口号、登录用户名密码
在NAS上部署迅雷,确实会带来很大的方便。但是目前很多教程都是讲怎么部署docker迅雷,鲜有将自定义配置的方法。这里讲一下怎么部署,并重点讲一下支持的自定义参数。 一、部署docker 在其他教程中,都是介绍的如下命令,…...

中国30米年度土地覆盖数据集及其动态变化(1985-2022年)
中文名称 中国30米年度土地覆盖数据集及其动态变化(1985-2022年) 英文名称:The 30 m annual land cover datasets and its dynamics in China from 1985 to 2022 CSTR:11738.11.NCDC.ZENODO.DB3943.2023 DOI 10.5281/zenodo.8176941 数据共享方式:…...

3D个人简历网站 5.天空、鸟、飞机
1.显示天空 models下新建文件Sky.jsx Sky.jsx // 从 React 库中导入 useRef 钩子,用于创建可变的 ref 对象 import { useRef } from "react"; // 从 react-three/drei 库中导入 useGLTF 钩子,用于加载 GLTF 格式的 3D 模型 import { useGLT…...

STM32IIC实战-OLED模板
STM32IIC实战-OLED模板 一,SSD1306 控制芯片1, 主要特性2,I2C 通信协议3, 显示原理4, 控制流程5, 开发思路 二,HAL I2C API 解析I2C 相关 API1,2,3,4…...
Sparse4D运行笔记
Sparse4D有三个版本,其中V1和V2版本的官方文档中环境依赖写得比较模糊且依赖库有版本冲突。 1. Sparse4D V1 创建环境 conda create sparse4dv1 python3.8 激活环境 conda activate sparse4dv1 安装torch, torchvision, torchaudio pip install torch1.13.0c…...
Redis设计与实现——分布式Redis
Redis Sentinel(哨兵) Sentinel 的工作机制 故障检测(Failure Detection) 主观下线(Subjective Down):单个 Sentinel 实例检测到主节点在30 秒内无响应,标记其为 SDOWN。 客观下线…...
多指标组合策略
该策略(MultiConditionStrategy)是一种基于多种技术指标和市场条件的交易策略。它通过综合考虑多个条件来生成交易信号,从而决定买入或卖出的时机。 以下是对该策略的详细分析: 交易逻辑思路 1. 条件1:星期几和价格变化判断 - 该条件根据当前日期是星期几以及价格的变化…...

c#车检车构客户管理系统软件车辆年审短信提醒软件
# CMS_VehicleInspection 车检车构客户管理系统软件车辆年审短信提醒软件 # 开发背景 软件是给泸州某公司开发的车检车构客户管理系统软件。用于在车检年审到期前一个月给客户发送车检短信提醒 # 功能描述 主要功能:车辆年审前一个月给客户发年审短信提醒…...