自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 收藏
  • 关注

原创 HarmonyOS元服务开发系列教程(三):实现音乐播放和封面旋转

Local大家可以理解为V1版本的State,区别是Local是组件内部的状态管理,不允许在外部进行初始化,并且Local能够实现深度状态检测。首先诚邀大家参加学习鸿蒙拿好礼活动,即日起,只要加入班级考取华为开发者基础/高级证书,并发表一篇技术文章,就有机会获得官方发放的精美礼品,数量有限,先到先得。上一篇文章中分享了如何开发音乐元服务的页面,今天继续完善应用功能,完成音乐的播放和控制,以及音乐列表弹窗等功能。本项目使用本地音频,音频文件和封面都存放在rawfile文件夹。

2025-08-12 18:10:38 256

原创 HarmonyOS元服务开发系列教程(二):音乐播放器首页

大家好,幽蓝君已经在华为开发者学堂开设班级,现邀请各位友友加入班级考取开发者等级证书,加入班级的学员考取华为开发者基础/高级证书后,并发表一篇HarmonyOS技术文章,就有机会领取官方发放的精美礼品,每月数量有限,先到先得,欢迎大家加入。可能有的友友看到这个页面感到眼熟,没错,我们之前分享过音乐App的开发,这一次我们基于相同的内容开发元服务。今天正式进行元服务的实战开发教程,今天介绍的内容是开发音乐元服务的播放页,效果图如下。为匹配信息,班级学号请填写与开发者联盟一致的手机号码,班级链接如下:​。

2025-08-11 16:50:13 272

原创 HarmonyOS元服务开发系列教程(一):元服务开发简述

大家好,幽蓝君已经在华为开发者学堂开设班级,现邀请各位友友加入班级考取开发者等级证书,加入班级的学员考取华为开发者基础/高级证书后,并发表一篇HarmonyOS技术文章,就有机会领取官方发放的精美礼品,每月数量有限,先到先得,欢迎大家加入。尝试运行元服务项目,可以看到元服务的页面右上角的胶囊按钮,用来分享和关闭元服务,当然了,元服务在桌面是没有图标的,在真机中大家可以把元服务添加到负一屏。以上就是对元服务的简单介绍,关于更多更深入的元服务开发教程会在接下来的系列文章中持续分享,欢迎大家持续关注。

2025-08-08 14:32:15 375

原创 鸿蒙端云一体化开发之创建和操作数据库

本文介绍了鸿蒙端云一体化开发中对云数据库的操作方法。主要包括两种创建数据库的方式:通过AGC云端手动创建同步到项目,或在项目中创建后上传到云端。文章详细讲解了数据库配置步骤,包括添加依赖、生成数据库模型文件等。重点演示了在云侧使用upsert方法添加数据的操作流程,通过连接云数据库并执行upsert指令实现数据更新。这种端云一体化的数据库操作方式简化了开发流程,为鸿蒙应用开发提供了便捷的云端数据管理方案。

2025-07-25 08:41:48 364

原创 详解鸿蒙开发中的端云一体化

今天和大家聊一聊鸿蒙开发中的端云一体化。所谓端云,指的是端侧和云侧,就是大家通常说的移动端和服务端,端云一体化就是在移动端集成了云侧的功能,让移动开发者在一个项目中就能开发完整的项目。这有点类似php,但是比php更加强大,对开发者非常友好,在移动开发中这应该是史无前例的创举。端云一体化的好处是,省略了传统前后端分离项目中的部署服务器、数据库、开发接口、甚至购买域名等步骤,极大地节省开发时间和开发成本。尤其对于初级开发者来说,同时掌握部署服务器、后端开发语言和移动端开发语言等技能是比较困难的事情。

2025-07-16 08:55:26 380

原创 HarmonyOS NEXT仓颉开发语言实战案例:电影App

大家周末好,今天依然为大家分享之前使用ArkTS实现过的案例,一个电影App,今天使用仓颉的UI再次实现,看看仓颉和ArkTs有哪些相同和不同之处。这个页面的结构比较简单,因为没有导航栏,全都使用List容器实现,最顶部是一个巨大的图片,这个不再演示,继续看下面的部分。##HarmonyOS语言##仓颉##休闲娱乐#

2025-06-30 08:48:57 284

原创 HarmonyOS NEXT仓颉开发语言实战案例:外卖App

我们可以先分析一下页面的布局结构,它是由导航栏和List容器组成的。幽蓝君目前依然没有找到仓颉语言导航栏的系统组件,还是要自定义,这个导航栏有三部分内容,可以使用两端对齐,要注意的是,如果需要中间部分在页面中间需要两端的内容宽度相同。以上就是关于外卖App的内容分享。##HarmonyOS语言##仓颉##生活服务#使用Scroll组件的时候要注意设置滚动方向,不然可能会发生列表不滚动的问题。各位周末好,今天为大家来仓颉语言外卖App的实战分享。

2025-06-30 08:48:15 289

原创 HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App

#HarmonyOS语言##仓颉##休闲娱乐#

2025-06-29 11:30:16 752

原创 HarmonyOS NEXT仓颉开发语言实战案例:健身App

这个页面看起比之前的案例要稍微复杂一些,主要在于顶部部分,有重叠的背景,还有偏移的部分。##HarmonyOS语言##仓颉##休闲娱乐#最后一部分比较简单,和上面代码类似,就不再赘述了。

2025-06-29 11:29:24 279

原创 HarmonyOS NEXT仓颉开发语言实战案例:动态广场

这里的内容也分为个人信息、状态内容和图片列表几部分,整个的布局方式是纵向的,要注意其中个人信息部分头像和名字时间是横向布局,这个比较简单。还有图片列表,我使用的方案是Grid,这样能够快速适配不同数量的图片。##HarmonyOS语言##仓颉##休闲娱乐#这样的话导航栏和列表容器撑满了整个页面,接下来的工作就是开发状态列表。话不多说,来看看代码怎么实现。

2025-06-28 16:03:40 336

原创 HarmonyOS NEXT仓颉开发语言实战案例:图片预览器

看到这个效果,我首先想到的实现方案是弹窗,弹窗的弹出和消失效果为我们节省了很多工作,这里使用的是CustomDialogController。在弹窗的配置参数中,设置customStyle为true可以使弹窗全屏展示。##HarmonyOS语言##仓颉##休闲娱乐#

2025-06-28 16:00:54 414

原创 HarmonyOS NEXT仓颉开发语言实战案例:简约音乐播放页

看到这个页面,我们先做一个简单的分析。整个页面分为上中下三个部分,顶部为导航栏,底部是歌词工具栏,剩下的就是中间的歌曲信息和控制按钮部分。它们的部分方式是比较简单的纵向布局。歌曲名字部分过于简单,不再赘述了。偶然间看到一个非常漂亮的音乐播放器设计图,忍不住想拿仓颉语言来练练手,当漂亮的设计图遇到优美的开发语言,简直是天作之合。##HarmonyOS语言##仓颉##音乐#上面代码展示了页面的基本结构和顶底部分的具体代码,现在我们只剩下中间内容部分。

2025-06-27 10:02:25 416

原创 HarmonyOS NEXT仓颉开发语言实现画板案例

看到上面的代码,大家可能会问this.context是什么,幽蓝君将它比作画笔,使用画笔在画布上作画,context可以绘制图形、文本、图片等内容。为了让绘制更加准确,我使用了三次贝塞尔曲线,这样我需要记录下至少两个点,然后将这个点的中点也传入贝塞尔曲线的坐标。要实现这个需求,首先我们需要知道绘制国的轨迹坐标,才能在画布上准确的绘制。实现绘制曲线后,可以使用clearRect方法实现对画布的清空。今天我们做的是让画笔跟随我们触摸过的轨迹绘制曲线。​##仓颉##休闲娱乐#

2025-06-27 09:58:27 398

原创 HarmonyOS NEXT仓颉开发语言实战案例:银行App

仓颉语言的商城项目基本开发结束啦,今天跟大家分享新的项目,一个银行app,说是新项目但是大家可能会有些眼熟,在ArkTS的教程中就写过这个项目。今天我们仓颉语言再写一遍,看看和ArkTS有什么不同。##HarmonyOS语言##仓颉##金融理财#

2025-06-26 08:42:49 581

原创 鸿蒙Next仓颉开发语言中的数据类型总结分享

仓颉中的数字类型复杂多样,首先分为整型和浮点型两种,也就是Int类型和Float类型,Int类型有Int、Int8、Int32、Int64几种类型,Float也有Float16、Float32和Float64几种类型,下面为大家介绍它们的区别。最后还有ObservedArrayList类型,对应的还有ObservedArray类型,它们通常用来进行状态管理,当数组内容发生变化时,触发UI进行更新。仓颉的字符串类型和其他语言类似,都是String,目前没发现什么需要注意的地方。

2025-06-25 12:17:27 396

原创 在仓颉开发语言中使用数据库

AI正在影响着各行各业,这几天幽蓝君对此深有感触,身为打工人要保持不断学习的状态,不然就有可能被替代。接下来数据库的操作流程可能很多友友都比较熟悉了,依次是获取数据库、建表,然后进行增删改查等操作,在任何开发语言中都是这样的步骤。它的两个参数分别是应用上下文和数据库的配置信息。goToNextRow意思是指向结果集的下一行,它返回一个bool值,返回true表示有值。总结一下,如果是有返回值的操作,比如查询,可以使用querySql方法,没有返回值的操作可以使用executeSql方法。

2025-06-24 09:59:55 334

原创 详解HarmonyOS NEXT仓颉开发语言中的全局弹窗

之前分享过仓颉开发语言中的自定义弹窗,那一次的自定义弹窗需要在对应页面先初始化再进行弹出,不是很方便。今天分享一下不依赖页面的全局弹窗。##HarmonyOS语言##仓颉##购物#你可以在任意页面任何地方随时调用,非常方便。

2025-06-23 15:45:44 293

原创 详解鸿蒙Next仓颉开发语言中的全屏模式

和ArkTS一样,仓颉的新建项目默认是非全屏模式的,如果你的应用颜色比较丰富,就会发现屏幕上方和底部的留白,这是应用自动避让了屏幕上方摄像头区域和底部的导航条区域。但是新的问题出现了,你不让系统自动避让的话,就要自己避让上下方的摄像头和导航条区域。但是通常我们不需要这些留白,而是希望应用占满整个屏幕,这时候需要用到沉浸模式,下面为大家分享具体的实现过程。要避让这些区域,首先要知道它们的尺寸,主要是高度。最后要注意,以上代码获取到的尺寸单位都是px,大家使用的时候要按需转换。

2025-06-19 10:58:29 440

原创 鸿蒙Next仓颉语言开发实战教程:懒加载

只不过和ForEach的一次性加载所有数据不同,懒加载会根据屏幕可使区域按需加载数据,并且当内容滑出屏幕范围时,懒加载又会自动将这些内容销毁。LazyForEach的用法和ForEach相比较为麻烦一些,它的数据源要求IDataSource类型,我们需要先自定义这个数据类型。所以懒加载对于程序的性能有显著的优化,对于用户的体验也有大幅的提升,这一点幽蓝君在ArkTs语言中已经做过对比。当数据比较多比较大的时候强烈建议大家使用懒加载。今天要分享的是仓颉开发语言中的懒加载。

2025-06-18 14:21:53 470

原创 鸿蒙Next仓颉语言开发实战教程:聊天页面

#HarmonyOS语言##仓颉##购物#

2025-06-17 13:51:10 284

原创 鸿蒙Next仓颉语言开发实战教程:消息列表

有了数组我们就可以遍历了,仓颉中循环渲染的组件我们目前使用的是Foreach,这里再把Foreach跟大家详细介绍一下,Foreach一共有三个参数,第一个是dataSource,也就是数据源,第二个叫itemGeneratorFunc,是生成子组件的地方,第三个参数叫keyGeneratorFunc,是生成子组件ID的地方,第三个参数不太常用。紧邻导航栏下方的是消息筛选列表,因为列表里元素的样式相同,所以我们使用Foreach循环加载。大家好,今天要分享的是仓颉语言开发商城应用实战教程的消息列表页面。

2025-06-16 14:03:53 150

原创 鸿蒙Next仓颉语言开发实战教程:设置页面

剩下的内容就是下面两组的内容部分了,可以看出它们几乎都是一样的,所以我们可以自定义组件来节省代码,再次介绍一下自定义组件的相关内容。导航栏还是老样式,介绍过很多次了,今天不再赘述。这个页面的内容主要还是介绍List容器的使用。##HarmonyOS语言##仓颉##购物#

2025-06-15 15:13:34 298

原创 鸿蒙Next仓颉语言开发实战教程:订单详情

剩下的内容就是List容器中的内容,也就是主体内容部分,可以看到它们分为三组,每一组拆开来看也都相对简单,都是基础的布局方式。比如中间商品详情部分,它可以分为上下两部分,上面内容部分又可以分为左右两部分,这就是分析布局的基本逻辑。幽蓝君听说HarmonyOS 5.1版本即将推送,6.0版本也快要来了,表示十分期待。##HarmonyOS语言##仓颉##购物#

2025-06-13 15:11:24 425

原创 详解HarmonyOS NEXT系统中ArkTS和仓颉的混合开发

可以看到项目中分别有cangjie的目录和ArkTs的项目目录,大家仔细看一下可以发现项目的入口文件是在ArkTS目录中的,就是说虽然创建项目选择的是仓颉混编项目,其实是仓颉代码依附在ArkTs的项目上,所以在混合开发项目运行过程中的页面控制器和主线程大都和仓颉无关,除后端功能以外,仓颉负责的部分主要是开发组件。最后有一些感慨,幽蓝君从业十年,熟识多种开发语言,有的面向对象,有的面向过程,有的注重性能。说的更简单一点,在混编项目中,ArkTS的页面可以嵌入仓颉的部分UI,而仓颉则不可以创建单独的页面。

2025-06-12 15:52:25 298

原创 鸿蒙Next仓颉语言开发实战教程:订单列表

订单类型应该是一个滚动的横条,虽然它现在没有占满整个屏幕,但是为了适配更多尺寸和类型的屏幕,我们还是要使用Scroll。最后是订单列表部分,很明显是一个List组件,依然使用layoutWeight占满剩余屏幕。然后店铺名字和发货状态部分使用List的header来实现,大家上午好,最近不断有友友反馈仓颉语言和ArkTs很像,所以要注意不要混淆。今天要分享的是仓颉语言开发商城应用的订单列表页。首先来分析一下这个页面,它分为三大部分,分别是导航栏、订单类型和订单列表部分。

2025-06-11 13:40:54 315

原创 鸿蒙Next仓颉语言开发实战教程:下拉刷新和上拉加载更多

上述代码演示了Refresh的基本使用,并且使用计时器模拟网络加载效果,两秒后自动加载完成,其中onRefreshing是进入刷新状态的回调,onStateChange为刷新状态改变的回调。计时器的用法也还需要大家再次熟悉一下,Timer.once表示一次性的计时器,Duration.second*2表示执行间隔是2秒,这种写法还是比较独特的。上面代码需要注意的是如何判断列表滑动到了底部,主要是判断数组的长度,在仓颉中数组的长度属性是size,类型是Int64。

2025-06-10 14:41:43 163

原创 鸿蒙Next仓颉语言开发实战教程:店铺详情页

整个页面由导航栏和List容器两大部分组成,导航栏我们已经分享过多次,今天不再赘述。主要说一下List部分。这个页面的内容看似简单,其实有很多小细节需要注意,主要还是让大家熟悉List容器的使用。##HarmonyOS语言##仓颉##购物#

2025-06-09 17:53:14 474

原创 详解鸿蒙Next仓颉开发语言中的动画

上面代码中,duration表示动画时长,curve表示动画曲线,delay表示延时,iterations表示循环次数,-1表示无限循环,playMode表示动画模式,这些属性在属性动画中也同样适用。首先我要现在页面上添加加载图片,并且将它的角度设置为变量。仓颉中的动画通常有两种方式,分别是属性动画和显示动画,我们今天以下面的加载动画为例,使用显示动画和属性动画分别实现一下,看看他们有什么区别。大家上午好,今天来聊一聊仓颉开发语言中的动画开发。

2025-06-08 13:51:43 911

原创 鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

到了开通会员部分,有些需要注意的地方。导航栏我们遇到过很多次了,需要注意的地方就是让标题居中,返回图标靠左。我们可以先分析下整个页面的布局结构。可以看出它是纵向的布局,整个页面由导航栏、个人资料、vip横条和我的订单几部分构成。##HarmonyOS语言##仓颉##购物#又到了高考的日子,幽蓝君在这里祝各位考生朋友冷静答题,超常发挥。下面介绍下这个页面的实现过程。

2025-06-07 16:42:07 382

原创 鸿蒙仓颉语言开发教程:仓颉语言中的状态存储

先介绍一下AppStorage的存储方法,有set和setOrCreate两种方式,区别是set只能设置已经创建了的字段的值,相当于修改值,而setOrCreate方法的作用是如果没有字段时会自动创建,所以我推荐大家使用setOrCreate方法。既然PersistentStorage是在AppStorage的基础上持久化数据,所以PersistentStorage存储的内容是可以通过AppStorage来读取的,取值方法和上面一样。大家好,今天来分享一下仓颉开发语言中的状态存储。

2025-06-06 08:46:57 322

原创 鸿蒙仓颉语言开发实战教程:商城搜索页

然后是热搜内容列表,这是我们第一次在仓颉语言中遇到Swiper容器,它有一些小小的坑,首先我暂时没找到隐藏控制圆点的属性,还有它代码控制翻页只支持上一页和下一页,无法通过按钮点击自由的翻页。热搜部分是这个页面最难的内容了,它两个部分都可以滑动但又是不同的滑动方式,标题部分可以自由滑动,而内容列表左右滑动时是分页的,所以标题部分使用Scroll容器,内容部分使用Swiper容器,这两部分还有联动效果。搜索页的内容比较多,都有点密集恐惧症了,不过我们可以从上至下将它拆分开来,逐一击破。

2025-06-05 08:54:43 466

原创 鸿蒙仓颉语言开发实战教程:商城登录页

其实这一次分享的仓颉语言商城应用沿用了之前ArkTs版本的商城页面,幽蓝君认为这个应用复杂程度和难度都很适中,适合大多数友友系统的学习仓颉语言。也能感受一下仓颉语言和Arkts在各个方面的不同之处。登录页面的代码就和Arkts非常类似,如果你不是对这两个语言非常熟悉甚至不容易看出这些细微的差别,但正是这些细微差别让人不知所措。听说Pura80要来了?感觉华为的新品像下饺子一样,让人目不暇接,每隔几天就有发布会看,真不错呀。节后第一天,为了缓解大家假期的疲惫,咱们今天做点简单的内容,就是商城的登录页面。

2025-06-04 08:38:34 424

原创 在鸿蒙开发中实现自定义进度条

这里我使用层叠布局,将黑色的总长度部分和白色部分进行层叠,白色部分的直线和圆点使用横向布局,当进度变化时只需要修改白色直线部分的长度,圆点会自动跟随移动。比如有时候我需要在进度条上有个圆点来控制进度,Progress就没有提供这种样式,所以今天就跟大家分享一下自定义进度条的实现过程。前些天发现一个问题,鸿蒙官方的进度条组件Progress虽然提供了比较丰富的功能,但是有时候还是不能满足开发的需要。#HarmonyOS语言##ArkTS##工具效率#

2025-06-03 17:07:05 254

原创 鸿蒙仓颉语言开发实战教程:购物车页面

也能它们是column布局,那么怎么样让这三部分刚好撑满整个页面,有一个简单的办法:给导航栏和结算栏一个固定的高度,然后给List组件设置layoutWeight(1)属性即可。购物车列表毫无疑问使用List组件,今天的List组件比之前多了一些内容,就是店铺名字这部分的内容,我们使用List中的header来实现。大家上午好,仓颉语言商城应用的开发进程已经过半,不知道大家通过这一系列的教程对仓颉开发是否有了进一步的了解。同样先把它简单的分析一下,大家可以把它分为两部分或者三部分,拆分开来就会比较简单了。

2025-06-03 09:46:28 838

原创 详解鸿蒙仓颉开发语言中的计时器

repeat是重复性执行的计时器,Duration.Zero是延迟执行的时间,Duration.second是执行的间隔,这里出现了新的参数style,它的名字叫追平策略,官方给出的解释是:当 Task 执行时间过长时,后续任务执行时间点可能发生延迟,不同的追平策略适用于不同的场景。这个计时器和上面的repeat类似,它多了一个参数period,意思是重复周期的最大持续时间。为什么这么说呢,因为关于仓颉的计时器你几乎搜不到任何的文档,也没有相关的代码提示,可以说是一写一个不吱声。

2025-06-02 22:18:00 1504

原创 详解鸿蒙开发如何上传三方库到ohpm仓库

这里需要填写和oh-package.json5中license对应的许可文件和开源协议,比如license中写的是Apache-2.0,这里就要写对应的许可文件。前两天幽蓝君在ohpm仓库上传了自己的第一个三方库,完整体验了一下ohpm的上传流程,感觉还是比较繁琐的,所以把上传流程和一些注意事项分享给大家。先介绍一下怎么开发一个三方库,在项目名称右键,新建Module,选择static library,在命名时尽量使用小写字母,避免大写。执行命令需要输入密码,记住这个密码,在上传库文件时需要用到。

2025-06-01 15:33:56 429

原创 鸿蒙仓颉语言开发教程:自定义弹窗

在仓颉中一些参数的写法也和ArkTs不太相同,比如cancel回调方法,比如颜色的设置。还要注意的是,@CustomDialog实现的自定义弹窗的所有参数是不支持动态刷新的,这一点不太方便,幽蓝目前也正在寻找更加方便的弹窗方式。昨天观看了时代旗舰尊界S800的发布,不得不感慨这车真好啊~放假闲来无事,继续跟大家分享仓颉语言的开发教程,今天介绍一下自定义弹窗。仓颉语言中的自定义弹窗和ArkTs类似,但是还是有一些不同的地方。

2025-06-01 06:58:18 485

原创 鸿蒙仓颉语言开发实战教程:实现商品分类页

先来看左侧的分类列表,很明显是一个List容器,样式上比较简单,只有一个文本,不过它有个点击状态的切换效果。分类页面要在基本布局的基础上增加一些动态效果,比如点击状态的切换和两个列表容器的联动。下面为大家详细介绍。今天继续为大家带来仓颉语言开发商城应用的实战教程,今天的内容是实现商品分类页。以上就是商品分类页面的内容介绍。#HarmonyOS语言##仓颉##购物#

2025-05-31 13:03:09 242

原创 鸿蒙仓颉语言开发教程:网络请求和数据解析

没有教程,没有参考文献,仓颉购物应用的开发过程真是举步维艰,每一步都是摸着石头过河,不过希望通过幽蓝君的文章能让大家少走一些弯路。看上面这段代码,从创建实例,配置参数到发起请求好像都能看懂,但是到了请求回调中幽蓝君是有一些懵圈的,像let Some(e) <- err这种代码我是看不懂一点,估计大家也有多人跟我一样。今天就以购物应用的分类列表为例,分享在仓颉开发语言中如何进行网络请求,以及怎么把请求到的数据展示到应用上。也就是说如果请求成功,Some(r)中的r就是我们请求到的数据。header:请求头。

2025-05-30 08:48:55 325

原创 鸿蒙仓颉语言开发教程:页面和组件的生命周期

在@Entry装饰的组件或页面中,存在aboutToAppear、aboutToDisappear、onPageShow、onPageHide、onBackPress这几个生命周期函数,执行的时机大家看名字就可以猜到。其中onBackPress是有bool类型的返回值的,当返回true说明不使用系统的返回方法,自己处理返回逻辑,反之返回false。其实幽蓝君比较喜欢分享实战写代码,不太喜欢讲太理论的东西,今天之所以单独写一篇文章分享生命周期的内容,因为这部分内容如果不讲一下还真是容易踩坑。

2025-05-28 08:39:19 310

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除