- 博客(699)
- 收藏
- 关注
原创 鸿蒙 Web组件PDF生成:从HTML到PDF的转换
HarmonyOS Web组件createPdf功能详解 摘要:HarmonyOS从API14开始提供Web组件的createPdf功能,支持将网页内容转换为PDF文档。该功能需要配置网络权限(INTERNET)和文件存储权限(WRITE_USER_STORAGE/READ_USER_STORAGE)。核心API包含createPdf方法和PdfConfiguration配置参数,可自定义页面尺寸(A4/A5等)、边距、缩放比例等。生成的PdfData对象提供PDF数据访问接口,支持Promise和回调两种
2026-02-09 06:45:00
136
原创 Flutter中的 工厂函数:使用与原理
Dart中的工厂函数是一种特殊的静态方法,用于灵活控制对象创建过程。与普通构造函数不同,工厂函数可以返回现有实例(如实现单例模式)、根据参数返回不同子类对象,或处理复杂对象构造(如JSON反序列化)。典型应用包括:1)单例模式实现,确保全局唯一实例;2)多态对象创建,根据参数返回不同子类;3)JSON反序列化,封装数据转换逻辑。工厂函数本质上是编译为静态方法,通过逻辑控制替代直接实例化,为对象创建提供了更大灵活性。
2026-02-08 18:00:00
632
原创 鸿蒙 showAssetsCreationDialog接口:相册文件管理
摘要: showAssetsCreationDialog是HarmonyOS媒体库提供的文件保存接口,通过系统弹窗让用户确认保存图片或视频到媒体库。支持批量处理(最多100个文件),返回的URI具有永久写入权限。参数包括源文件URI数组(需合法媒体路径)和文件配置数组(需指定扩展名和类型)。支持常见图片(JPG/PNG等)和视频格式(MP4/MOV等)。开发者可通过异步调用实现单文件或批量保存,需注意URI合法性及配置匹配。若无法使用安全控件,此接口是保存媒体文件的替代方案。
2026-02-08 06:45:00
857
原创 鸿蒙中 Web组件的下载能力
摘要:本文详细介绍了HarmonyOS Web组件的文件下载管理功能,包括监听页面触发下载和主动发起下载两种方式。通过WebDownloadDelegate委托机制,开发者可以控制下载路径、监控进度并处理失败情况。文章还展示了如何将文件保存到用户可访问的Download目录,以及实现断点续传功能的方法。核心代码示例涵盖了下载回调设置、文件路径选择、下载状态持久化等关键功能,为开发者提供了完整的Web下载解决方案。
2026-02-07 18:00:00
250
原创 鸿蒙中 文件选择器(FilePicker)
HarmonyOS文件选择器开发指南 摘要:HarmonyOS提供三种系统级文件选择器(FilePicker)组件,允许应用无需申请权限即可访问用户文件。主要包含DocumentViewPicker(文档选择)、PhotoViewPicker(图片视频选择)和AudioViewPicker(音频选择)。开发者可通过配置选择参数(如文件类型过滤、最大选择数量等)拉起系统文件管理界面,获取临时只读权限的文件URI。选择器支持多种文件格式,并提供了文件内容读取的API接口。需要注意的是,获取的URI权限是临时的,
2026-02-07 06:45:00
898
原创 Flutter中 GlobalKey 使用场景
本文介绍了Flutter中GlobalKey的核心用途和使用场景。GlobalKey能在整个Widget树中唯一标识Widget,主要应用于:访问Widget状态、获取Widget上下文、表单验证管理以及测量Widget尺寸位置。文章通过代码示例详细演示了每种场景的实现方式,并强调应遵循"必要使用"原则,优先考虑其他方案,避免过度使用带来的性能成本,同时要注意生命周期管理和内存泄漏问题。
2026-02-06 18:00:00
397
原创 鸿蒙中 应用数据备份与恢复-BackupExtensionAbility
本文同步发表于我的,微信搜索程语新视界即可关注,每个工作日都有文章更新BackupExtensionAbility 是 HarmonyOS Stage 模型中的派生类,专门用于处理应用数据的备份与恢复。可通过配置文件定制备份恢复行为,包括是否允许备份、备份哪些文件等。
2026-02-06 06:45:00
907
原创 Flutter中 CustomScrollView实现粘性头部
本文介绍了Flutter中的CustomScrollView组件,这是一个能够创建复杂自定义滚动效果的高级容器。文章重点讲解了CustomScrollView的核心特点:统一滚动机制、基于Sliver的渲染系统、高度定制能力和性能优化。详细对比了Sliver组件与常规RenderBox组件的区别,并列举了常用Sliver组件及其功能。通过多个代码示例展示了基本用法、混合布局实现和高级功能配置,包括SliverAppBar的复杂设置、SliverPersistentHeader的粘性头部实现,以及使用Sliv
2026-02-05 18:00:00
378
原创 鸿蒙中 系统存储空间获取
本文介绍了HarmonyOS系统中监控文件系统空间和应用存储使用情况的核心API。主要包含两大模块:文件系统空间统计(statfs)提供获取指定路径剩余和总空间的接口,应用存储空间统计(storageStatistics)支持获取当前应用存储详情及内置存储空间信息。文章详细说明了各API功能、版本支持及BundleStats属性含义,并提供了获取文件系统剩余空间、应用存储统计以及同步/异步获取内置存储空间的完整代码示例,帮助开发者构建更健壮的应用。
2026-02-05 06:45:00
336
原创 Flutter中 ScaffoldMessenger 消息通知
Flutter 2.0引入的ScaffoldMessenger组件优化了SnackBar的管理机制,解决了旧版本中上下文依赖、路由切换和生命周期等问题。它支持全局管理SnackBar,自动处理路由切换,并能保持消息持久化。使用方式包括Builder包装、全局context和ScaffoldMessenger包裹三种方法。除了基础用法外,还支持自定义样式(如浮动效果、圆角、图标等)和高级控制(手动关闭、批量清除、回调处理等)。ScaffoldMessenger通过SnackBarController提供了更精
2026-02-04 18:00:00
560
原创 鸿蒙 Web组件文件上传:onShowFileSelector
HarmonyOS Web组件文件上传功能详解 摘要:HarmonyOS Web组件通过onShowFileSelector接口提供完整的文件上传支持,开发者可以实现三种上传方式:1)调用系统文件管理器选择任意文件;2)从系统图库选择图片/视频;3)直接调用相机拍照/录像。组件支持处理HTML input元素的accept和capture属性,自动适配不同场景需求。通过FileSelector对象可获取文件选择参数,使用handleFileList方法将结果返回Web前端。文章详细介绍了各种实现方式的代码示
2026-02-04 06:45:00
564
原创 鸿蒙 Web组件不同窗口间的迁移
HarmonyOS Web组件跨窗口迁移技术摘要 HarmonyOS通过Web组件跨窗口迁移功能实现了类似浏览器标签页拖拽分离与合并的交互体验。该技术基于自定义节点能力,核心包括BuilderNode创建离线节点、NodeController管理生命周期以及NodeContainer显示动态组件。实现流程为:原始窗口移除Web组件→创建离线节点→挂载到目标窗口。关键类包含BuilderNode构建组件树、NodeController控制挂载行为以及NodeContainer绑定显示。开发者需注意UICont
2026-02-03 18:00:00
392
原创 flutter中 常用的image组件类型
Flutter提供了丰富的图片组件,包括Image、Image.network、Image.asset等基础组件,以及FadeInImage、CircleAvatar等特殊效果组件。这些组件支持从网络、本地资源、文件等多种来源加载图片,并提供加载进度、错误处理、缓存控制等功能。高级用法还涵盖图片缓存管理、分辨率适配和背景装饰等场景,开发者可根据需求选择合适的组件和配置参数来实现最佳图片显示效果。
2026-02-03 06:45:00
365
原创 鸿蒙中 应用沙箱内文件访问
摘要:HarmonyOS通过CoreFileKit提供完整的文件操作功能,包含基础文件操作(创建、读写、复制、删除)和高级流式处理(可读/可写流、哈希流)。开发时需先获取应用沙箱路径,支持同步/异步接口,大文件操作推荐使用流式处理。注意事项包括及时关闭流、避免混用同步/异步接口以及正确处理文件指针偏移量。该套接口支持MD5、SHA等多种哈希算法,可实现文件完整性校验。
2026-02-02 18:00:00
768
原创 Flutter中 隐式动画组件
Flutter隐式动画组件是一组能自动处理动画过渡的特殊Widget,开发者只需设置目标值即可自动创建和管理动画过程。这些组件分为容器布局类(如AnimatedContainer、AnimatedPadding)、视觉外观类(如AnimatedOpacity、AnimatedTheme)、变换类(如AnimatedScale、AnimatedRotation)以及列表网格类(如AnimatedList)。它们具有声明式编程、自动管理动画参数、性能优化和易用性等特点,极大简化了动画开发流程。通过组合使用这些组
2026-02-02 06:45:00
1329
原创 Flutter中 动画分类
Flutter动画开发指南 本文系统介绍了Flutter动画开发的核心内容,主要包括: 动画分类:隐式动画(如AnimatedContainer)和显式动画(如AnimationController) 核心组件:AnimationController控制器、Tween补间动画和AnimationBuilder构建器 常用隐式动画组件:包括AnimatedOpacity、AnimatedPositioned等8种内置组件 显式动画流程:从控制器创建到动画启动的完整实现步骤 自定义动画:通过CustomPain
2026-02-01 18:00:00
657
原创 鸿蒙中 后台任务: 定时提醒
摘要:本文介绍了系统代理提醒功能的技术规范,包括设备类型支持(手机、平板等)、应用类别限制(工具类、商务类等12类)、场景管控(禁止营销类,允许生活健康类等)以及数量限制(单应用≤30个)。详细说明了6个核心接口的功能和使用方法,并提供了完整的开发流程:从AGC平台申请能力、权限配置到代码示例(包含日历提醒的发布与取消)。该功能适用于生活提醒、健康管理等场景,要求跳转目标必须为申请应用本身。
2026-02-01 06:45:00
746
原创 鸿蒙 Web组件BFCache:提升页面导航性能
鸿蒙Web组件的BFCache(前进后退缓存)功能通过在内存中保存页面快照,实现前进/后退操作的瞬时恢复。默认配置可缓存1个页面10分钟,开发者可通过BackForwardCacheSupportedFeatures启用特定功能(如同层渲染、视频托管)。通过BackForwardCacheOptions可自定义缓存容量(最多10页)和存活时间(300秒)。该功能显著提升导航速度,减少网络依赖,保持页面状态,适用于内容型应用、表单页面等场景。需在初始化Web引擎前调用enableBackForwardCach
2026-01-31 18:00:00
549
原创 鸿蒙 声明式UI与自定义节点混合开发BuilderNode
摘要: BuilderNode是ArkUI的关键API,支持将声明式UI组件树挂载到自定义节点系统,实现系统组件与自定义节点的混合渲染。核心功能包括组件树挂载、节点获取、纹理导出和预创建优化。它通过build()构建组件树,update()更新数据,并支持与NodeController、RenderNode结合使用。高级特性包括BuilderProxyNode处理、节点复用(API20+)、组件冻结和状态管理数据传递。BuilderNode优化了性能,支持灵活的混合渲染和扩展定制,适用于复杂UI场景。
2026-01-31 06:45:00
1031
原创 鸿蒙中 mutableBuilder实现UI组件动态切换和更新
摘要: mutableBuilder是HarmonyOS ArkUI API 22引入的动态UI构建方案,解决了传统wrapBuilder无法动态切换全局@Builder函数的问题。它支持运行时更新UI组件,要求参数类型严格匹配,仅限全局@Builder使用,且必须在自定义组件内调用以避免崩溃。通过MutableBinding和@Monitor可实现状态监听,与数组存储和bindMenu兼容。相比wrapBuilder,mutableBuilder具备动态切换、自动更新和状态监听优势,但限制更严格,推荐优先
2026-01-30 18:00:00
358
原创 鸿蒙中 Web页面的加载速度优化
本文介绍了一套完整的Web性能优化方案,包含从域名级到资源级的全方位加速技术。主要包括:1)预解析与预连接技术,通过提前进行DNS解析和TCP连接减少网络延迟;2)预加载技术提前下载页面资源;3)预获取POST请求优化API调用;4)预编译生成JavaScript字节码缓存;5)离线资源注入避免网络请求。这些技术可分层组合使用,在Wi-Fi环境下可更激进地应用,同时需注意内存管理和网络环境适配。通过合理运用这些优化手段,能显著提升Web页面加载速度,特别是在网络条件差或资源多的场景下。
2026-01-30 06:45:00
1132
原创 鸿蒙 自定义UI之组件节点(FrameNode)
鸿蒙ArkUI中的FrameNode提供了命令式UI操作能力,支持动态节点树管理。其核心功能包括:1.节点创建与销毁;2.节点树动态操作(增删改查);3.自定义测量、布局和绘制;4.类型化节点创建;5.数据懒加载机制。FrameNode解决了传统混合开发中的性能问题,支持节点复用、精确布局控制和第三方框架集成。通过NodeContainer容器可直接构建自定义节点树,提供完整的UI控制能力,包括获取系统组件代理节点进行遍历和监听。该机制突破了声明式UI的限制,实现了更灵活的UI开发方式。
2026-01-29 18:00:00
1610
原创 鸿蒙中 后台运行:延迟任务
摘要:鸿蒙系统的延迟任务机制允许应用在后台执行非实时任务,如邮件获取、数据同步等。该机制基于条件触发(如网络连接、设备充电等),由系统智能调度以平衡资源使用。开发流程包括任务注册、系统监控、条件触发和执行回调。应用需遵循严格限制:最多10个任务,执行间隔2-48小时(根据应用活跃度),单次最长2分钟。核心API包括任务管理接口和状态查询接口,开发步骤需实现WorkSchedulerExtensionAbility并配置module.json5。该机制禁止调用相机、音频等敏感API,适用于轻量级后台操作。
2026-01-29 06:45:00
710
原创 鸿蒙 onLoadIntercept()和onInterceptRequest区别
摘要: Web混合开发中,onLoadIntercept()和onInterceptRequest()是两种请求拦截机制,核心差异在于: 功能定位:前者拦截页面跳转(如URL重定向/白名单控制),后者修改网络请求(如资源替换/动态加载)。 拦截范围:onLoadIntercept()仅处理主URL,而onInterceptRequest()可操作所有子资源及请求体数据。 执行顺序:若onLoadIntercept()返回true,则直接拦截,跳过后者。 应用场景: 需阻止跳转或重定向时用onLoadInte
2026-01-28 18:00:00
827
原创 鸿蒙中 wrapBuilder封装全局@Builder
摘要:wrapBuilder是鸿蒙ArkUI提供的模板函数,用于封装全局@Builder函数,返回WrappedBuilder对象。它解决了@Builder函数赋值后无法在UI中直接使用的问题,支持将Builder赋值给变量、放入数组或作为组件属性传递。主要特性包括:支持全局@Builder包装、严格类型匹配、组件间Builder传递等。虽然API22+推荐使用mutableBuilder,但wrapBuilder在兼容低版本和模块化UI构建方面仍有重要价值,特别适用于需要动态管理UI构建逻辑的复杂场景。
2026-01-28 06:45:00
635
原创 鸿蒙 Web组件:请求拦截、浏览记录前进和后退
在鸿蒙(HarmonyOS)应用开发中,Web组件是加载和显示网页内容的重要工具。它不仅支持基本的网页浏览,还提供了丰富的导航和跳转功能。本文将详细介绍如何利用Web组件实现页面历史记录导航、应用内页面跳转以及跨应用跳转。
2026-01-27 18:00:00
806
原创 鸿蒙中 URL中参数提取
鸿蒙开发中可通过@kit.ArkTS的url模块处理URL参数。主要使用URLParams类解析和操作查询参数:先用url.URL.parseURL()解析完整URL获取search和params属性,然后通过get()、set()等方法进行参数查询和修改,支持多种初始化方式(字符串/键值对数组/对象)。该类提供全面的参数操作功能,包括遍历、排序和序列化为查询字符串等,适用于前端与原生页面交互时的URL参数处理场景。
2026-01-27 06:45:00
710
1
原创 鸿蒙 Web组件加载:网络、本地、HTML文本
在HarmonyOS应用开发中,Web组件是展示网页内容的核心组件。本文将全面解析Web组件的各种页面加载方式,涵盖网络页面、本地页面、HTML文本数据等多种场景。
2026-01-26 18:00:00
794
原创 鸿蒙中 后台运行:长时任务
在移动应用开发中,某些关键业务需要在后台持续运行(如音乐播放、导航、录音等),但这些功能又容易受到系统后台管理策略的影响。HarmonyOS通过长时任务机制,为这类需求提供了规范化的解决方案。
2026-01-26 06:45:00
695
原创 鸿蒙 Web组件自定义网页弹框
ArkWeb组件自定义网页弹框实现方案 摘要:针对ArkWeb组件不原生支持网页弹框的问题,本文提供了三种弹框(Alert、Confirm、Prompt)的自定义实现方案。通过Web组件的onAlert、onConfirm、onPrompt回调接口拦截请求,分别采用UIContext.showAlertDialog、CustomDialogController+AlertDialog、CustomContentDialog等方式实现弹框功能。每种方案均包含代码示例和HTML测试页面,并详细说明了JsResu
2026-01-25 18:00:00
849
原创 鸿蒙 后台任务开发:短时任务
HarmonyOS后台任务管理摘要:针对应用退至后台时的系统资源管控,HarmonyOS提供了BackgroundTasksKit解决方案,支持短时任务、长时任务、延迟任务和代理提醒四种后台任务类型。其中短时任务适用于耗时短(≤3分钟)的实时性任务,具有严格配额机制(单日10分钟,单次3分钟),需在前台或onBackground回调中申请,任务完成后必须主动取消。开发时需注意配额管理、超时处理和多任务协调,合理使用getRemainingDelayTime()检查剩余时间,避免超过最大任务数限制(同时3个)
2026-01-25 06:45:00
783
原创 Dart中 dynamic 和 var 的区别
摘要: var和dynamic在开发中均用于变量声明,但存在关键差异: 类型推断:var在编译时确定类型(静态,不可变),dynamic在运行时动态变化。 安全性:var类型安全(编译时检查),dynamic不安全(仅运行时报错)。 性能:var无额外开销,dynamic需运行时类型检查。 使用场景: var:已知类型但简化声明(如局部变量、集合字面量)。 dynamic:动态类型需求(如JSON解析、反射),但应尽快转为具体类型。 建议:优先使用var确保安全性与可读性,仅在必要时谨慎使用dynamic。
2026-01-24 18:00:00
957
原创 鸿蒙 @ohos.display模块 屏幕属性查询与状态监听
摘要:@ohos.display模块提供了全面的屏幕管理能力,支持查询屏幕属性(分辨率、刷新率等)、监听状态变化(旋转、插拔等)以及适配特殊屏幕(折叠屏、异形屏)。核心功能包括:获取Display对象、获取屏幕属性、处理异形屏区域、监听屏幕状态变化以及折叠屏适配。使用时需注意避免匿名函数监听和及时取消监听,以防止内存泄漏。该模块为开发者提供了强大的屏幕适配能力,可有效优化应用在不同设备上的显示效果。
2026-01-24 06:45:00
653
原创 鸿蒙 Web组件网页缩放:启用、监听与控制
Web组件提供三种缩放方式:手势缩放、鼠标滚轮缩放和键盘缩放,支持通过zoomAccess属性、HTML viewport标签或forceEnableZoom属性控制缩放行为。开发者可监听onScaleChange事件获取缩放比例变化,并使用zoom()、zoomIn()、zoomOut()等API精确控制缩放比例。缩放比例可用百分比、小数或整数表示,其中zoom()函数的参数大于1表示放大,小于1表示缩小。使用缩放API前需确保zoomAccess(true)已启用,否则会抛出错误代码17100004。
2026-01-23 18:00:00
1181
原创 鸿蒙 应用启动页:分类、配置
本文详细介绍了应用启动页的配置方法及优化策略。启动页分为简易版(仅图标+背景色)和增强版(支持多种资源展示),通过module.json5文件进行配置。文章重点阐述了两种启动页的字段设置、显示规则及适配建议,特别强调了增强启动页在API19+上的丰富配置选项,包括显示控制、深浅色模式、区域资源展示等。最后给出了图片资源选择、多设备适配、启动优化和品牌展示等方面的实用建议,帮助开发者平衡品牌展示与启动性能。
2026-01-23 06:45:00
657
原创 鸿蒙 Web组件软键盘控制
本文介绍了ArkUI中Web组件与软键盘交互的实现方案。主要内容包括:1)通过runJavaScript和showTextInput实现页面加载自动弹出软键盘;2)提供应用级(RESIZE/OFFSET)和Web组件级(OVERLAYS_CONTENT等)两种避让模式;3)支持三种键盘控制方式:系统默认键盘、定制Enter键键盘和完全自定义键盘,通过onInterceptKeyboardAttach回调实现拦截控制;4)给出不同场景下的避让模式选择建议和常见问题解决方案。开发者可根据需求选择合适的键盘交互方
2026-01-22 18:00:00
683
原创 鸿蒙 画中画开发:使用XComponent实现视频小窗
本文详细介绍了在HarmonyOS中使用XComponent组件实现视频画中画(PiP)功能的方法。主要内容包括:1.环境要求与限制条件,如组件类型必须为SURFACE、Navigation管理需设置id属性等;2.完整开发流程,包括创建控制器、启动/停止PiP、更新媒体源尺寸等步骤;3.核心代码实现,重点说明了XComponent视频容器构建、自定义UI控制器开发、画中画状态管理及事件处理;4.针对不同页面管理场景(Navigation/Router/UIAbility)的配置差异。文章特别强调了内存管理
2026-01-22 06:45:00
675
原创 鸿蒙 Web组件嵌套滚动组件
本文介绍了两种实现嵌套滚动的方法:方案1通过nestedScroll属性实现简单联动,支持6种预设滚动模式;方案2通过手动派发偏移量实现精确控制,适用于复杂场景。两种方案各具特点:方案1代码简单但控制粒度较粗,方案2实现复杂但灵活性高。文章详细说明了技术实现步骤,包括禁用组件滚动、边界检测和偏移量派发等关键操作,并提供了常见问题解决方案,如滚动卡顿、边界检测不准和手势冲突等。开发者可根据实际需求选择适合的方案。
2026-01-21 18:00:00
766
原创 鸿蒙中 画中画开发(一)
本文介绍了画中画功能的开发实现方式与核心接口。系统提供三种开发方式:XComponent适用于单页面场景,typeNode(推荐)灵活性高,NDK接口适合依赖NDK开发的应用。核心功能包括生命周期控制、事件监听和控制面板管理。交互支持单击显示控制层、双击缩放、拖动移动等操作。系统针对视频播放、通话、会议、直播等不同场景提供专用控制组配置,并支持自定义UI展示。开发时需注意后台启动限制、使用新版事件监听接口,并遵循检查功能→创建控制器→配置场景→启动的流程。应用需做好状态管理和资源清理,特别是长时任务应用需监
2026-01-21 06:45:00
1255
原创 鸿蒙 Web组件:前端页面调用客户端函数
摘要:HarmonyOS ArkUI的Web组件支持ArkTS与H5页面双向通信,通过两种注册方式实现:初始化时注册(javaScriptProxy)和后期动态注册(registerJavaScriptProxy)。H5页面可直接调用注册的ArkTS方法,支持复杂数据类型传递、回调函数和Promise异步处理。关键注意事项包括:需配置方法白名单和URL权限,页面销毁前必须调用deleteJavaScriptRegister防止内存泄漏,且动态注册需刷新页面生效。该机制实现了客户端与Web页面的深度交互能力。
2026-01-20 18:00:00
745
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅