- 博客(73)
- 收藏
- 关注
原创 HarmonyOS NEXT实战:父子组件间调用函数
在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。进行UI界面开发时,不仅要组合使用系统组件,还需考虑代码的可复用性、业务逻辑与UI的分离,以及后续版本的演进等因素。自定义组件是如此的常见,那么在父子组件间,就不可避免地会出现函数调用的问题。例如:父组件如何调用子组件的函数?子组件又如何调用父组件的函数?父子组件间调用函数是常见的交互需求,主要用于实现组件间的通信和功能协作。父组件调用子组件函数。子组件调用父组件函数。
2025-06-28 15:43:40
373
原创 HarmonyOS NEXT实战:加载本地网页资源
#HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##参考资料:为了在启动、跳转、弱网等场景下减少用户等待感知,同时为动态内容加载争取时间,可以加载本地页面优化用户体验。在下面的示例中展示加载本地页面文件的方法:将本地页面文件放在应用的rawfile目录下,开发者可以在Web组件创建的时候指定默认加载的本地页面,并且加载完成后可通过调用loadUrl()接口变更当前Web组件的页面。加载本地html文件时引用本地css样式文件可以通过以下方法实现。
2025-06-28 15:20:05
280
原创 HarmonyOS NEXT实战:加载网络页面资源
在默认页面加载完成后,如果需要变更此Web组件显示的网络页面,可以通过调用loadUrl()接口加载指定的网页。Web组件的第一个参数变量src不能通过状态变量(例如:@State)动态更改地址,如需更改,请通过loadUrl()重新加载。在下面的示例中,在Web组件加载完“example.com”页面后,开发者可通过loadUrl接口将此Web组件显示页面变更为“example1.com”。根据页面加载数据来源可以分为三种常用场景,包括加载网络页面、加载本地页面、加载HTML格式的富文本数据。
2025-06-28 15:04:01
258
原创 HarmonyOS NEXT实战:管理避让区
设置主窗口状态栏的属性,使用Promise异步回调,该接口在2in1设备上调用不生效,其他设备在分屏模式(即窗口模式为window.WindowStatusType.SPLIT_SCREEN)、自由悬浮窗口模式(即窗口模式为window.WindowStatusType.FLOATING)、自由多窗模式(可点击设备控制中心中的自由多窗按钮开启)下调用不会立刻生效,只有进入全屏主窗口才会生效。KeyboardAvoidMode.NONE模式配置页面不避让键盘,页面会被抬起的键盘遮盖。NONE: 不避让键盘。
2025-06-28 14:52:14
400
原创 HarmonyOS NEXT实战:窗口沉浸式效果
沉浸式模式通常指让应用的界面更加专注于内容,不希望用户被无关元素干扰。窗口提供管理窗口的一些基础能力,包括对当前窗口的创建、销毁、各属性设置,以及对各窗口间的管理调度。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##推荐使用方案一,好处是可以针对整个应用(所有页面)实现沉浸式效果。WindowStage:窗口管理器。管理各个基本窗口单元。Window:当前窗口实例,窗口管理器管理的基本单元。实现沉浸式效果的两种方案。方案一:设置窗口全屏模式。方案二:扩展组件安全区域。
2025-06-28 14:27:24
223
原创 HarmonyOS NEXT实战:获取窗口属性
获取当前应用内最上层的子窗口,若无应用子窗口,则返回应用主窗口,使用Promise异步回调。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##获取当前窗口的属性,返回WindowProperties。WindowProperties各属性解释。第1步:获取Window类。第2步:获取当前窗口的属性。
2025-06-28 14:14:45
295
原创 HarmonyOS NEXT实战:openCustomDialog自定义弹窗
由于CustomDialogController在使用上存在诸多限制,不支持动态创建也不支持动态刷新,在相对较复杂的应用场景中推荐使用UIContext中获取到的PromptAction对象提供的openCustomDialog接口来实现自定义弹出框。弹出框(openCustomDialog)可以通过配置isModal来实现模态和非模态弹窗。本文介绍通过入参形式为ComponentContent创建自定义弹出框,传builder形式的弹出框使用方法可参考openCustomDialog。
2025-06-28 13:55:10
384
原创 HarmonyOS NEXT实战:接入和使用axios
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。这是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中。本库基于Axios 原库v1.3.4版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。axios支持泛型参数,由于ArkTS不再支持any类型,需指定参数的具体类型。如:axios.get<T = any, R = AxiosResponse, D = any>(url)创建BaseRequest 工具类。
2025-06-27 16:17:19
321
原创 HarmonyOS NEXT实战:网络状态监控
思路:通过使用 @ohos.net.connection 的能力,在网络连接状态发生变化时,判断当前网络是否可以访问互联网,并将判断结果存储到 AppStorage 中。需要判断网络连接状态时,直接从 AppStorage 获取结果。网络连接管理提供管理网络一些基础能力,包括WiFi/蜂窝/Ethernet等多网络连接优先级管理、网络质量评估、订阅默认/指定网络连接状态变化、查询网络连接信息、DNS解析等功能。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##
2025-06-27 16:03:41
127
原创 HarmonyOS NEXT实战:使用Emitter进行线程间通信
使用时需要先订阅一个事件,然后发布该事件,发布完成后Emitter会将已发布的事件分发给订阅者,订阅者就会执行该事件订阅时设置的回调方法。应用需要先订阅某个事件并设置好该事件的回调方法,当应用程序发布事件后,就会往队列里面插入一个事件。任务队列会串行执行队列里面的任务,执行任务时会调用该任务订阅者的回调方法进行事件处理。Emitter是一种作用在进程内的事件处理机制,为应用程序提供订阅事件、发布事件、取消事件订阅的能力。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##
2025-06-27 15:50:29
292
原创 HarmonyOS NEXT实战:通过QQ分享内容
业务后台:使用用户UGC数据完成ark业务JSON数据的组装(ShareData.shareJson),生成ShareData中的时间戳(ShareData.timestamp)、随机自然数(ShareData.nonce),并对这三部分数据进行签名计算后,将以上数据回调业务客户端,由业务客户端调用互联分享接口发起分享。##HarmonyOS Next实战##三方SDK##教育##shareData: 分享数据,包含分享业务数据+签名部分数据。业务客户端:用户分享时,将分享的UGC内容传到业务后台。
2025-06-27 15:36:56
278
原创 HarmonyOS NEXT实战:接入QQ SDK
如果手机安装了QQ,则启动手机QQ进行SSO登录。如没有安装,则通过手机系统的浏览器进行登录。登录的流程已经集成在SDK里,建议开发者使用此方法。(2)根据QQ登录OAuth2.0协议,自主开发,此方法自定义程度较高,需要与现有系统进行整合的移动应用可选用此方法。继续修改entry的module.json5文件,增加querySchemes。开发者注册 > 移动应用申请 > 移动应用开发 > 调用OpenAPI。修改entry的module.json5文件,配置skills。
2025-06-27 14:59:12
370
原创 HarmonyOS NEXT实战:通过微信分享内容
#HarmonyOS Next实战##三方SDK##教育##前提条件:已接入微信SDK。为什么要通过微信分享内容?添加WeixinUtil。
2025-06-27 14:45:24
148
原创 HarmonyOS NEXT实战:接入微信SDK
如已有移动应用,则可在「管理中心 - 移动应用 - 详情 - 开发配置」中点击「编辑」进入修改开发信息的页面,继续在「平台信息」板块中填入鸿蒙应用所需的 Bundle ID 和 identifier 信息,然后提交审核,等待审核通过即可。出现该报错提示原因是你的移动应用配置了鸿蒙的开发信息后,提交审核,尚未审核通过(即审核中或者审核驳回)了,重新提交待审核通过即可。注意:如果不配置签名,则调用微信SDK时,会在微信APP提示“第三方应用信息校验失败”添加WXEventHandler。
2025-06-27 14:43:14
291
原创 HarmonyOS NEXT实战:函数方法的重载
函数方法重载(Method Overloading)是指在同一个类中,允许存在多个同名方法,但这些方法的参数列表必须不同(参数类型、数量或顺序的差异)。重载是编译时多态(静态多态)的一种实现方式,编译器根据调用时提供的参数自动选择匹配的方法。· 返回值类型无关:仅返回值类型不同不足以构成重载(例如,int func() 和 double func() 不是重载)。· 编译时解析:编译器根据方法调用时的参数类型和数量,从所有同名方法中选择最匹配的一个。· 避免过度重载:过多的重载方法可能导致代码难以维护。
2025-06-26 16:08:41
314
原创 HarmonyOS NEXT实战:占比图
offset:渐变色断点(0~1之间的比例值,若数据值小于0则置为0,若数据值大于1则置为1)。说明:若传入字符串类型且内容为数字,则转换为对应的数值。例如’10vp’转换为10,'10%'转换为0.1。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##DataPanel数据面板组件,用于将多个数据占比情况使用占比图进行展示。ColorStop:颜色断点类型,用于描述渐进色颜色断点。options:数据面板组件参数。实战:DataPanelPage。color:颜色值。
2025-06-26 15:53:21
276
原创 HarmonyOS NEXT实战:滑动条
设置滑轨的背景颜色。说明: 设置渐变色时,若颜色断点颜色值为非法值或者渐变色断点为空时,渐变色不起效果。默认值:$r(‘sys.color.ohos_id_color_component_normal’)。默认值:$r(‘sys.color.ohos_id_color_foreground_contrary’)设置滑轨的已滑动部分颜色。默认值:$r(‘sys.color.ohos_id_color_emphasize’)Slider滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。
2025-06-26 15:42:46
398
原创 HarmonyOS NEXT实战:图案密码
input:与选中宫格圆点顺序一致的数字数组,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。.activeColor(value: ResourceColor) //设置宫格圆点在“激活”状态的填充颜色,“激活”状态为手指经过圆点但还未选中的状态。回调参数为选中宫格圆点顺序的数字,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。设置为0或负数时组件不显示。
2025-06-26 15:29:34
316
原创 HarmonyOS NEXT实战:播放视频
当视频完整出现时会自动播放,用户点击视频区域则会暂停播放,同时显示播放进度条,通过拖动播放进度条指定视频播放到具体位置。Video组件回调事件主要为播放开始、暂停结束、播放失败、播放停止、视频准备和操作进度条等事件,除此之外,Video组件也支持通用事件的调用,如点击、触摸等事件的调用。Video组件已经封装好了视频播放的基础能力,开发者无需进行视频实例的创建,视频信息的设置获取,只需要设置数据源以及基础信息即可播放视频,相对扩展能力较弱。Video组件属性主要用于设置视频的播放形式。
2025-06-26 14:58:28
265
原创 HarmonyOS NEXT实战:唤起相机
#HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##拉起相机选择器,根据媒体类型进入相应的模式。操作结束通过Promise形式获取结果。应用可调用CameraPicker拍摄照片或录制视频,无需申请相机权限。目标:可以唤起相机拍照和录像,并展示拍摄的图片和视频。PickerProfile:相机选择器的配置信息。PickerResult:相机选择器的处理结果。cameraPicker.pick接口。PickerProfile属性。PickerResult属性。
2025-06-26 14:48:28
307
原创 HarmonyOS NEXT实战:进度条
Progress有5种可选类型,通过ProgressType可以设置进度条样式,ProgressType类型包括:ProgressType.Linear(线性样式)、 ProgressType.Ring(环形无刻度样式)、ProgressType.ScaleRing(环形有刻度样式)、ProgressType.Eclipse(圆形样式)和ProgressType.Capsule(胶囊样式)。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。value:指定当前进度值。
2025-06-26 14:38:25
387
原创 HarmonyOS NEXT实战:图片放大和缩小
只有当触摸屏幕的手指数等于设置的触发捏合手势的最小手指数,并且滑动距离满足阈值要求时,手势才能被成功识别(只有先落下的两根手指参与手势计算,若抬起其中的一个,手势识别失败)。对于已经成功识别的手势,后续改变触摸屏幕的手指数量,将不会触发onActionUpdate事件,但可以触发onActionEnd事件。捏合手势(PinchGesture)用于触发捏合手势,触发捏合手势的最少手指为2指,最大为5指,最小识别距离为5vp。tag:设置Pinch手势标志,用于自定义手势判定时区分绑定的手势。
2025-06-26 14:21:49
144
原创 HarmonyOS NEXT实战:弹出底部菜单
半模态页面提供了生命周期函数,用于通知用户该弹窗的生命周期状态。生命周期的触发顺序依次为:onWillAppear -> onAppear -> onWillDisappear -> onDisappear。使用嵌套滚动交互:半模态上述交互默认的嵌套模式为:{Forward:PARENT_FIRST,Backward:SELF_FIRST}##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##目标:拉起底部菜单,实现底部菜单的弹起和关闭。
2025-06-26 13:56:38
251
原创 HarmonyOS NEXT实战:计数器
date:当前显示的日期值。InlineStyleOptions定义Inline Style(数值内联型Counter)的属性和事件。DateStyleOptions定义Date style(日期内联型Counter)的属性和事件。value:设置Counter的初始值。max:设置Counter的最大值。textWidth:设置数值文本的宽度。min:设置Counter的最小值。month:设置日期内联型初始月份。year:设置日期内联型初始年份。day:设置日期内联型初始日。
2025-06-26 13:41:35
273
原创 HarmonyOS NEXT实战:网格元素拖拽交换
Grid网格布局一般由Grid容器组件和子组件GridItem构建生成,Grid用于设置网格布局相关参数,GridItem定义子组件相关特征。网格布局中含有网格元素,当给Grid容器组件设置editMode属性为true时,可开启Grid组件的编辑模式。Grid网格元素拖拽交换功能在应用中经常会被使用,如当编辑九宫格图片需要拖拽图片改变排序时,就会使用到该功能。当网格中图片进行拖拽交换时,元素排列会跟随图片拖拽的位置而发生变化,并且会有对应的动画效果,以达到良好的用户体验。
2025-06-26 12:14:55
176
原创 HarmonyOS NEXT实战:二维码和扫码
默认值:Color.White,从API version 11开始,默认值改为’#ffffffff’,且不跟随系统深浅色模式切换而修改。说明:该字符串内容确保有效,不支持null、undefined以及空内容,当传入上述内容时,将生成无效二维码。通过配置参数调用默认界面扫码,使用Promise异步回调返回解码结果。默认值:‘#ff000000’,且不跟随系统深浅色模式切换而修改。通过配置参数调用默认界面扫码,使用Promise异步回调返回扫码结果。目标:生成二维码,并且可通过扫码读取二维码信息。
2025-06-26 11:39:45
331
原创 HarmonyOS NEXT实战:拨打电话
#HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##实战:CallPhoneDemoPage。目标:输入电话号码,并拨打电话。使用makeCall拨打电话。
2025-06-26 11:26:51
252
原创 HarmonyOS NEXT实战:倒计时
在组件不可见时时间变动将停止,组件的可见状态基于onVisibleAreaChange处理,可见阈值ratios大于0即视为可见状态。TextTimer组件的控制器,用于控制文本计时器。一个TextTimer组件仅支持绑定一个控制器,组件创建完成后相关指令才能被调用。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##options:通过文本显示计时信息并控制其计时器状态的组件参数。TextTimer通过文本显示计时信息并控制其计时器状态的组件。目标:实现倒计时功能。
2025-06-26 11:22:50
267
原创 HarmonyOS NEXT实战:自定义确认弹窗
#HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##目标:封装自定义弹窗,通过方法调用,直接打开已定制的确认弹窗。
2025-06-26 11:22:25
262
原创 HarmonyOS NEXT实战:启动页
页面路由指在应用程序中实现不同页面之间的跳转和数据传递。Router模块通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面。本文将从页面跳转、页面返回、页面返回前增加一个询问框和命名路由这几个方面,介绍如何通过Router模块实现页面路由。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##目标:实现APP启动时,启动页为广告,并且5秒后可手动关闭广告,跳转至主页。定时器对象保存在创建它的线程内,删除定时器需要在创建该定时器的线程删除。
2025-06-25 16:31:01
221
原创 HarmonyOS NEXT实战:页面水印
当该事件被触发时画布被清空,该事件之后Canvas组件宽高确定且可获取,可使用Canvas相关API进行绘制。绘制的起点默认为坐标轴的原点(画布的左上角),通过坐标轴的平移及旋转,实现在画布的不同位置、不同角度绘制水印。如果水印有一定旋转角度,想保证第一个水印能完整显示,需要对绘制的起点做平移,平移距离通过旋转角度及水印宽高计算。使用CanvasRenderingContext2D对象在Canvas组件上进行绘制,其中fillText()方法用于绘制文本,drawImage()方法用于图像绘制。
2025-06-25 16:19:11
249
原创 HarmonyOS NEXT实战:沙箱工具
表示沙箱路径的字符串称为path,获取方式及其接口用法请参考:应用上下文Context-获取应用文件路径。将指向资源的字符串称为URI。对于只支持path作为入参的接口可使用构造fileUri对象并获取其path属性的方式将URI转换为path,然后使用文件接口。使用该功能模块对文件/目录进行操作前,需要先获取其应用沙箱路径,获取方式及其接口:getContext().cacheDir。fs.copyFile:复制文件,使用Promise异步回调。fs.open:打开文件,使用Promise异步回调。
2025-06-25 16:04:22
367
原创 HarmonyOS NEXT实战:字符串工具
在编码时,将原始数据按3个字节一组进行划分,得到若干个6位的数字,然后使用Base64编码表中对应的字符来表示这些数字。Base64URL编码表包含A-Z、a-z、0-9以及”-“和”_“64个字符,Base64URL编码结果不含”="。需要注意的是,在使用TextEncoder进行编码时,不同编码格式下字符所占的字节数是不同的,在使用TextEncoder时需要明确指定要使用的编码格式,以确保编码结果正确。目标:封装字符串工具类,实现常用的功能,如检查字符串是否为空,将字符串转为字节流等。
2025-06-25 15:47:49
175
原创 HarmonyOS NEXT实战:千分分隔符工具
#HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##locale:表示区域信息的字符串,由语言、脚本、国家或地区组成。NumberOptions:创建数字格式化对象时设置的配置项。options:创建数字格式化对象时可设置的配置项。目标:实现千分分隔符工具封装。
2025-06-25 15:23:26
291
原创 HarmonyOS NEXT实战:日志工具
两个API在使用时略有差异,本文重点介绍HiLog的用法,console的具体用法可查看API参考console。在应用开发过程中,可在关键代码处输出日志信息。在运行应用后,通过查看日志信息来分析应用执行情况(如应用是否正常运行、代码运行时序、运行逻辑分支是否正常等)。HiLog中定义了DEBUG、INFO、WARN、ERROR、FATAL五种日志级别,并提供了对应的方法输出不同级别的日志。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##
2025-06-25 15:06:03
235
原创 HarmonyOS NEXT实战:沉浸式效果工具
典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条,其中状态栏和导航条,通常在沉浸式布局下称为避让区;避让区之外的区域称为安全区。开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感,从而使用户获得最佳的UI体验。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##目标:封装工具类,实现沉浸式效果。
2025-06-25 14:53:09
372
原创 HarmonyOS NEXT实战:持久化存储-首选项工具
Preferences会随着存放的数据量越多而导致应用占用的内存越大,因此,Preferences不适合存放过多的数据,也不支持通过配置加密,适用的场景一般为应用保存用户的个性化设置(字体大小,是否开启夜间模式)等。开发者可以将用户首选项持久化文件的内容加载到Preferences实例,每个文件唯一对应到一个Preferences实例,系统会通过静态容器将该实例存储在内存中,直到主动从内存中移除该实例或者删除该文件。##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##
2025-06-25 14:27:43
408
原创 HarmonyOS NEXT实战:瀑布流和懒加载
瀑布流容器,由“行”和“列”分割的单元格所组成,通过容器自身的排列规则,将不同大小的“项目”自上而下,如瀑布般紧密布局。仅支持FlowItem子组件,支持渲染控制类型(if/else、ForEach、LazyForEach和Repeat)。##HarmonyOS Next实战##HarmonyOS应用开发##教育##目标:实现瀑布流图片和文字,并通过懒加载加载瀑布流子项。
2025-06-25 14:14:37
194
原创 HarmonyOS NEXT实战:列表和懒加载
#HarmonyOS Next实战##HarmonyOS应用开发##教育##前提:需要申请权限ohos.permission.INTERNET。目标:实现列表布局,并且通过懒加载加载item项。LazyForEach使用限制。
2025-06-25 13:57:02
397
原创 HarmonyOS NEXT实战:Swiper轮播图
通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。Swiper提供了默认的导航点样式和导航点箭头样式,导航点默认显示在Swiper下方居中位置,开发者也可以通过indicator属性自定义导航点的位置和样式,导航点箭头默认不显示。autoPlay为true时,会自动切换播放子组件,子组件与子组件之间的播放间隔通过interval属性设置。通过indicator属性,开发者可以设置导航点相对于Swiper组件上下左右四个方位的位置,同时也可以设置每个导航点的尺寸、颜色、蒙层和被选中导航点的颜色。
2025-06-25 13:43:37
286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人