- 博客(18)
- 收藏
- 关注
原创 HarmonyOS ArkTS 实战:如何封装一个开启和关闭沉浸式的工具
typescript运行/*** 安全区高度模型:存储状态栏/导航栏高度*/// 状态栏高度(vp)// 导航栏高度(vp)本文封装的采用单例模式,确保全局唯一实例,避免重复创建窗口对象;工具内置异常处理和容错逻辑,解决了上下文为空、窗口获取失败等常见问题;通过共享安全区高度,实现页面布局与沉浸式状态的联动适配;最佳实践:页面级别的沉浸式需在onPageShow开启、onPageHide关闭,保证页面间状态隔离。
2026-01-09 15:49:01
698
2
原创 HarmonyOS 网络请求封装实战:基于 Rcp 打造标准化 Request 工具类
typescript运行// ResponseData.ts(与后端统一的响应结构)// 业务状态码(如200表示成功)// 提示信息result: T;// 核心业务数据// GlobalVariable.ts(全局常量)BASE_URL: "https://api.example.com", // 基础地址TIME_OUT: 5000, // 超时时间5秒SUCCESS_CODE: 200, // 业务成功码TOKEN: "xxx-xxx-xxx" // 用户token。
2026-01-28 09:32:16
698
原创 HarmonyOS 多端开发:封装 MediaQuery 断点工具类(BreakpointSystem)实战教程
如需新增断点(如 xl:1200vp+),只需修改断点数组:typescript运行{ name: 'xl', size: 1200 } // 新增xl断点。核心能力:自动化管理断点监听,统一拼接查询条件,全局同步断点状态;使用流程:初始化工具类→组件挂载时register→组件销毁时unregister→UI 组件监听断点变化;实战场景:可快速实现 “断点控制背景色、图片、布局列数” 等响应式需求;扩展优化:支持自定义断点、单例化、结合原生自适应属性,适配复杂多端场景。
2026-01-27 09:36:37
747
原创 HarmonyOS 多端开发:MediaQuery 媒体查询实现动态响应式布局(附完整实战代码)
typescript运行// 标准化断点区间(无重叠,覆盖所有宽度)核心模块mediaquery是鸿蒙 ArkUI 提供的媒体查询核心模块,封装了所有监听逻辑;断点规范:断点区间必须无重叠、无遗漏(原代码中listenerLG的区间是,与MD的840vp重叠,已修正为840vp),避免同一宽度触发多个断点。核心能力:适配 “静态设备属性” 和 “动态屏幕变化” 两类场景,无需复杂逻辑即可实现布局自适应;核心流程:创建监听器→注册 change 事件→响应断点变化→销毁监听,四步完成适配;
2026-01-27 09:24:35
713
原创 HarmonyOS 多端开发:基于断点(Breakpoint)的响应式布局实战(附完整代码)
本文核心代码基于鸿蒙UIAbility生命周期实现,通过监听窗口尺寸变化,自动计算当前断点并全局共享,是断点布局的 “基础骨架”。typescript运行// 超小屏(手表、折叠屏收起)// 小屏(手机)// 中屏(平板、折叠屏展开)// 大屏(车机、智慧屏)这是鸿蒙官方推荐的通用断点划分,你可根据业务调整(比如新增 xl 大屏:>1200vp)。单位适配:通过将 px 转为 vp,保证断点划分的跨设备一致性;断点监听:在UIAbility中监听窗口尺寸变化,实时更新并全局共享断点值;布局切换。
2026-01-26 10:47:14
977
原创 HarmonyOS 多端开发核心:7 大自适应布局能力全解析(附实战示例)
鸿蒙多端开发的自适应布局核心,是利用 7 大原生布局能力,将 “适配逻辑” 交给系统,而非开发者手动实现。拉伸 / 均分 / 占比:解决 “空间分配” 问题,让组件随容器动态调整尺寸;缩放 / 折行:解决 “内容显示” 问题,避免变形 / 截断;延伸 / 隐藏:解决 “空间不足” 问题,按需显示 / 滚动内容。掌握这 7 种能力后,无需为不同设备编写差异化布局代码,即可实现 “一套代码适配手机、平板、车机、手表” 的目标,真正发挥鸿蒙多端开发的效率优势。
2026-01-26 09:28:55
783
原创 HarmonyOS ArkTS 实战:RelationalStore 关系型数据库全攻略(增删改查完整示例)
本文基于鸿蒙初始化流程:先通过创建数据库连接,再执行初始化表结构;查询核心ResultSet需手动遍历和关闭,字段类型需与匹配;条件操作替代原生 SQL 条件,简化查询 / 修改 / 删除的条件构造;资源管理:ResultSet 必须关闭,数据库操作完成后按需释放RdbStore实例;最佳实践:封装工具类、使用事务、分页查询、添加索引,提升代码可维护性和性能。掌握的核心用法后,可轻松应对鸿蒙应用中结构化数据的存储需求,无论是文章管理、用户中心还是订单系统,都能基于这套逻辑快速实现。
2026-01-22 09:01:23
930
原创 HarmonyOS ArkTS 实战:基于 AVRecorder 实现音频录制(完整录音 + 本地文件保存)
本文基于鸿蒙AVRecorder权限先行:录音必须配置并申请MICROPHONE权限,否则功能无法使用;文件准备:通过fileIo创建应用私有目录下的文件,获取fd关联录音数据;参数合规:录音配置仅支持AAC编码 +m4a格式,参数错误会导致录音失败;资源释放:停止录音后必须释放AVRecorder并关闭文件句柄,避免内存泄露和文件占用。掌握AVRecorder的核心用法后,可进一步扩展功能(如暂停 / 继续录音、录音质量切换、音频文件上传等),满足语音笔记、语音输入等复杂业务场景的需求。
2026-01-21 11:04:54
826
原创 HarmonyOS ArkTS 实战:权限申请全攻略(封装通用权限工具类 + 二次授权引导)
本文基于鸿蒙权限配置:敏感权限必须配置reason和usedScene,且reason需引用字符串资源;工具封装:将重复的权限申请逻辑封装为工具类,提升代码复用性和可维护性;体验优化:首次拒绝授权后,先告知权限用途,再引导至设置页,避免强制跳转;异步处理:所有权限操作都是异步的,必须使用await等待结果,避免同步判断错误。这套权限申请方案适配鸿蒙所有 user_grant 类型的敏感权限,不仅适用于麦克风,还可直接迁移到相机、相册、地理位置等权限申请场景,是鸿蒙应用权限管理的最优实践之一。
2026-01-21 11:00:35
938
原创 HarmonyOS ArkTS 实战:基于 AVPlayer 实现网络音频朗读(有道词典语音示例)
AVPlayer是鸿蒙模块下的媒体播放管理类支持网络音频(HTTP/HTTPS)、本地文件、Asset 资源等多种播放源;提供播放状态监听、音量调节、倍速播放、循环播放等核心功能;遵循 “创建→初始化→准备→播放→销毁” 的生命周期,资源管理更规范。本文基于鸿蒙AVPlayer流程规范:严格遵循 “创建实例→设置 URL→监听状态→prepare→play→释放资源” 的播放流程,状态监听是核心;细节处理:网络音频 URL 需编码,特殊字符会导致播放失败;资源管理:组件销毁时必须调用。
2026-01-20 09:45:41
747
原创 HarmonyOS ArkTS 实战:掌握 Preferences 用户首选项(轻量级键值存储)
(用户首选项)是鸿蒙 ArkTS 提供的Key-Value 键值型数据处理能力数据以键值对形式存储,键(Key)为字符串类型,值(Value)支持数字、字符串、布尔型及这 3 种类型的数组;数据持久化存储在应用私有目录,无需手动管理文件路径,系统自动维护;操作 API 简洁(同步 / 异步),开发成本低,读写性能优于关系型数据库。适用场景:仅用于存储轻量级、简单结构的数据(配置、状态标记等),避免存储大量 / 复杂数据;核心操作:增删改查后必须调用flush(),否则数据仅存于内存,重启后丢失。
2026-01-20 09:33:32
701
原创 HarmonyOS ArkTS 实战:基于 Scan Kit 实现二维码扫码功能(含设备兼容性判断)
若默认扫码界面不符合 UI 设计要求,可使用 Scan Kit 的自定义扫码能力(),自定义扫码框、扫码提示、闪光灯按钮等:typescript运行// 自定义扫码界面示例(核心参数)scanType: [scanBarcode.ScanType.QR_CODE], // 仅识别QRCodeisShowAlbum: true, // 显示相册选择按钮isShowFlashLight: true // 显示闪光灯按钮本文基于鸿蒙 Scan Kit 和canIUse兼容性优先:通过canIUse。
2026-01-19 09:29:47
944
原创 HarmonyOS ArkTS 实战:一键截图保存到相册(基于 componentSnapShot+SaveButton 安全控件)
本文基于鸿蒙 ArkTS 的和SaveButton精准截图:通过组件 ID 实现指定区域截图,避免截取整个屏幕;免权限体验SaveButton安全控件免弹窗获取短时权限,提升用户体验;安全合规:优先使用应用私有缓存目录,符合鸿蒙权限规范;健壮性高:完善的异常处理和资源释放,避免内存泄露、文件句柄泄露。这套实现方案不仅适用于分享弹窗截图,还可迁移到页面内容保存、海报生成等场景,是鸿蒙应用中实现 “截图保存到相册” 的最优实践之一。
2026-01-19 09:11:15
1089
原创 HarmonyOS ArkTS 实战:基于 QRCode 组件打造自定义分享二维码弹窗
通过装饰器封装组件,整合测试信息、QRCode、用户信息等 UI 元素,实现弹窗的视觉与功能布局:typescript运行// 自定义分享弹窗组件// 接收外部传递的测试详情(单向数据绑定)// 从Auth工具类获取当前用户信息// 弹窗控制器(必须定义,用于关闭弹窗等操作)build() {// Stack布局:实现“保存到本地”按钮悬浮在弹窗右下角// 弹窗主体内容(垂直布局)// 1. 品牌Logo.width(40)// 2. 品牌/功能文案。
2026-01-16 11:44:02
2553
2
原创 HarmonyOS ArkTS 与 H5 混合开发:Web 组件调用 JS 函数全解析
首先在鸿蒙项目中创建本地 HTML 文件,定义接收鸿蒙数据并渲染内容的 JS 函数,这是交互的基础。本文基于鸿蒙WebH5 侧:在rawfile目录下创建 HTML 文件,定义接收数据的 JS 函数(如writeHtml),做好内容渲染容器;鸿蒙侧:通过绑定Web组件,在onPageEnd回调中调用执行 H5 的 JS 函数,传递数据;避坑关键:确保 JS 函数在页面加载完成后调用,处理特殊字符转义,复杂数据通过 JSON 序列化传递。
2026-01-15 15:39:24
723
原创 HarmonyOS ArkTS 实战:封装可复用的动画骨架屏组件(支持自定义内容)
高复用性:拆分(基础块)和HcSkeleton(动画容器),可组合出任意布局的骨架屏;灵活性:通过接收自定义布局,适配列表、详情页、表单等所有场景;易用性:一行代码启用呼吸动画,支持自定义动画时长、曲线,无需重复编写动画逻辑;可扩展:预留了样式配置、动画扩展的接口,便于后续迭代。这种 “基础组件 + 容器组件” 的封装思路,是 ArkTS 组件化开发的核心思想 —— 将通用逻辑抽离为基础组件,通过构建器、参数传递实现灵活组合,既降低了重复代码,又保证了业务的灵活性。
2026-01-15 09:09:07
617
原创 HarmonyOS ArkTS 实战:封装类型安全的 Axios 请求工具,提升开发效率
先定义请求参数和响应数据的类型(放在),提升类型约束能力:typescript运行// 示例:登录请求参数类型// 示例:登录响应数据类型id: number// 示例:获取用户列表响应类型id: number}>类型安全:通过泛型约束请求参数和响应数据,告别「any 类型」,开发时享受完整的类型提示;逻辑统一:响应拦截器统一处理业务码、错误信息,业务层只需关注核心逻辑;调用便捷:封装getpost快捷方法,一行代码即可发起请求;易维护。
2026-01-13 13:41:44
607
原创 HarmonyOS ArkTS 实战:优雅封装状态栏(StatusBar)工具类
如果需要设置更多状态栏属性(比如隐藏状态栏、修改背景色),可直接调用setBar方法:typescript运行// 隐藏状态栏 + 设置文字颜色为白色statusBarHidden: true // 隐藏状态栏})代码复用:将重复的「获取上下文→获取窗口→设置属性」逻辑抽离,业务层只需一行代码调用;逻辑解耦:状态栏操作与页面业务分离,便于后期统一修改(比如更换文字颜色值);易用性提升:通过快捷方法降低新手使用成本,无需记忆复杂的 API 参数。
2026-01-12 17:19:09
698
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅