
harmonyOS
文章平均质量分 92
普通网友
这个作者很懒,什么都没留下…
展开
-
鸿蒙(HarmonyOS)实战开发篇——基于@ohos/crypto-js实现加解密工具箱
@ohos/crypto-js是一个根据crypto-js库移植的鸿蒙三方库,适配源库4.2.0版本,提供了一系列加密算法和安全工具,主要用于执行各种消息摘要计算和对称加解密操作。原创 2024-10-09 14:30:49 · 1256 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于connection的网络连接管理能力
应用侧需要知道用户当前连接网络状态并作对应的业务处理,如网络断开返回弹框提示、应用中是否按缓存数据展示图片等。应用侧需要知道用户当前连接网络状态并作对应的业务处理,如网络断开返回弹框提示、应用中是否按缓存数据展示图片等。:应用内部获取当前使用网络类型为wifi / 移动数据 及当前网络可连接状态做业务处理。:获取当前连接网卡链路地址、DNS地址等信息判断处理用户连接网络位置等应用侧能力。获取当前连接网卡链路地址、DNS地址等信息判断处理用户连接网络位置等应用侧能力。原创 2024-10-09 14:03:21 · 530 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于wifiManager的网络扫描及IP地址获取
查看附近可连接wifi网络的信号强度(rssi)、热点能力、服务集标识(ssid)等信息,开发者可自定义策略选择网络原创 2024-10-08 21:43:46 · 817 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——对request 上传下载的指南
request主要给应用提供上传下载文件、后台传输代理的基础能力。原创 2024-10-08 20:20:49 · 964 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——对各种图片编解码格式的支持
拷贝动态库到\entry\libs${OHOS_ARCH}\目录: 动态库需要在\entry\libs${OHOS_ARCH}\目录,才能集成到hap包中,所以需要将对应的so文件拷贝到对应CPU架构的目录原创 2024-10-08 18:16:34 · 999 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——跨语言的复杂参数类型传递
我们经常在ArkTS与C++之间相互传递参数,那么具体该如何传呢?下面介绍了几个常用的场景:原创 2024-10-08 17:32:25 · 1238 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生能力的压缩与解压缩能力
场景一:压缩与解压rawfile目录下的文件,由于在resource/rawfile目录下存放的文件,没有对外暴露的沙箱路径,无法使用文件管理接口或以沙箱路径形式处理,因此需要将rawfile下文件通过fs拷贝进沙箱目录下,再使用 zlib 进行压缩与解压。原创 2024-10-08 16:13:59 · 1155 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于AVPlayer的视频播放
AVPlayer:功能较完善的音视频播放ArkTS API,集成了流媒体和本地资源解析,媒体资源解封装,视频解码和渲染功能,适用于对媒体资源进行端到端播放的场景,可 直接播放mp4、mkv等格式的视频文件 。本示例就是使用avplayer进行视频播放的实现,功能包括多种方式播放视频,以及对于视频播放的控制。原创 2024-10-08 15:46:31 · 1923 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于OHAudio的音频操作
场景:基于OHAudio模块实现音频录制和播放功能,带监听音频打断实现使用OH_AudioCapturer接口录制音频生成PCM文件写入到文件保存到沙箱路径,再使用OH_AudioRenderer接口播放音频文件,并监听音频打断原创 2024-10-08 15:10:45 · 820 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——Fabric 自定义组件开发指南
创建一个 Fabric 组件需要实现以下的代码:ComponentInstance:ComponentInstance文件是该自定义组件所有的逻辑集合,也是自定义组件主要需要实现的部分,简单理解就是,一个自定义组件文件对应一个ComponentInstance。Package文件:作用是声明创建该自定义组件的声明,指定创建Instance时会根据Packeage文件内的名称对应,从而生成对应的Instance对象。原创 2024-10-08 13:56:36 · 1341 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——C-API版本XComponent接入
C-API 版本使用XComponent总共分成了两个步骤:原创 2024-10-07 22:29:23 · 971 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于WaterFlow的页面滑动加载
场景一:瀑布流页面多列混排的布局场景,例如:10个item在2列内布局,中间5个item在1列内撑满宽度布局,后10个item在3列内布局。原创 2024-10-07 20:59:17 · 1279 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于关系型数据库的数据持久化
关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。关系型数据库基于SQLite组件提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。原创 2024-10-07 17:37:16 · 1431 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于RichEditor的评论编辑
使用RichEditor的属性customKeyboard控制切换系统键盘还是自定义键盘,添加表情使用addImageSpan,删除内容使用deleteSpans,并通过获取光标所在位置进行删除。原创 2024-10-07 16:29:22 · 1022 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于动态配置签名的多人协同开发应用签名解决方案
通过在hvigorfile.ts里使用函数方法,动态配置签名材料。//工程级别hvigorfile.tsconfig: {ohos: {signingConfig: getSigningConfig(), //签名配置对象appOpt: {} //app.json中的内容return {return "1";}``原创 2024-10-07 15:30:15 · 1501 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生实现高级显示效果
这种方案实现的跑马灯效果能力更强,可塑性更强,但是注意使用Marquee组件试下的时候不宜在页面中使用过多,该组件存在一定的性能问题,不建议在一个页面中使用超过四个。这种方案实现的跑马灯效果没有性能问题,但是没有Marquee那样提供了各种回调,如果没有复杂的效果并且需要在页面中大量使用的时候建议使用这一种。使用linearGradient与blendMode结合实现文字渐变效果,在结合动画来实现滚动的效果。原创 2024-10-07 14:59:41 · 876 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于HAR的跨模块C++头文件引用
多个模块使用同一份C++代码是App开发中很常见的问题,比如多个模块使用同一个自研的加解密库、集成三方开源SO库暴露其中的C++代码等。注意事项:双冒号前面指的是srcHar/oh-package.json5配置中的name,双冒号后面跟着的是步骤2中srcHar中对外导出的的so库名称,名称必须要一致。5、在desHar的cpp源码中使用 srcHar提供的C++方法。1、将需要导出的C++头文件放至srcHar模块下的固定目录。场景:模块A引用模块B的C++接口。2.构建第一个ArkTS应用。原创 2024-10-07 14:17:07 · 1177 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于CameraKit对相机进行操作
1.在开发相机应用时,需要先申请相机相关权限。2.创建一个相机设备,应用通过调用和控制相机设备完成拍照基础操作。3.创建一个相机会话,在会话中可以进行相机的输入流和输出流,添加闪光灯、调整焦距等配置。4.创建输出流,相机开发模型为Surface模型,即应用通过Surface进行数据传递,通过ImageReceiver的surface获取拍照流的数据、通过XComponent的surface获取预览流的数据进行预览。如果要实现双路预览可将拍照流改为预览流。5.获取拍照返回的图片并显示出来。原创 2024-10-07 13:36:51 · 1751 阅读 · 1 评论 -
鸿蒙(HarmonyOS)实战开发篇——har和hsp的转换
2.(可选)当Hsp需要对外声明router可跳转的page时,需要添加module.json5的"pages"字段,并在resources/base目录下建立profile/main_pages.json文件,添加配置参考如下,并在对应位置添加页面。4.har包的build-profile.json5默认会有"consumerFiles": ‘./consumer-rules.txt’ ,该项仅har模块可配置,为默认导出的混淆规则(详细描述见: 代码混淆 ),需将其删除。共享包选型: 应用模块化选型。原创 2024-10-06 22:15:19 · 1005 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生的水印添加能力
使用cameraPicker拉起系统相机拍照,拿到返回的picker.PickerResult.resultUri后使用fs.openSync读出图片文件转化为pixelMap,使用image组件渲染在页面上,在保存图片的时候通过drawing.TextBlob.makeFromString方法绘制水印后保存。第二步:使用image.createImageSource方法创建图片资源,在使用OffscreenCanvasRenderingContext2D.drawImage方法绘制图片在离屏画布上。原创 2024-10-06 21:26:43 · 1589 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于webView的嵌套滚动
实现方法:通过web组件的type属性设置为1,即全量展开且嵌套滚动场景,并且layoutMode接口用来设置web页面是否全量展开,如需全量展开则设置参数为WebLayoutMode.FIT_CONTENT,nestedScroll接口用来设置web组件与上下层组件的嵌套滚动关系,推荐使用子组件优先模式(NestedScrollMode.SELF_FIRST)。整体实现效果为:页面整体为一个Scroll,Scroll中嵌套一个Tabs组件,Tabs里有多个web组件可以实现首页效果。原创 2024-10-06 20:35:58 · 1344 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于tabs实现页面布局
最外层为tabs组件,首页tabContent主要用的stack组件嵌套了scroll组件+导航输入框组件,其中scroll组件嵌套了tabs组件,tabs里面嵌套list组件。原创 2024-10-06 20:00:06 · 1587 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于bindSheet的半模态弹窗
半模态转场通过bindSheet属性为组件绑定半模态页面,在组件插入时可通过设置自定义或默认的内置高度确定半模态大小。原创 2024-10-06 19:43:20 · 1658 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生能力的横竖屏旋转适配
我们如何通过传感器自己感知方向,自己设置旋转;(使用sensor感知设备是不关心设备是否启用系统自带的旋转锁定)原创 2024-09-30 21:51:51 · 1188 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生能力的跨应用跳转
使用原生能力startability启动其他应用前,开发者需要判断目标应用是否安装,从而执行不同的逻辑,例如:原创 2024-09-30 21:17:44 · 1226 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于AVCodecKit的音视频解码及二次处理播放
首先导入选择器picker模块,使用PhotoViewPicker方法拉起图库选择视频文件,将视频文件传递到native侧使用Demuxer解封装器进行解封装,再使用OH_VideoDecoder进行解码(surface模式)送显播放原创 2024-09-30 20:30:09 · 1033 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于AudioRenderer音频播放
在播放音频方面用的最多的就是系统提供的AudioRenderer和AVPlayer。AudioRenderer是音频渲染器,用于播放PCM(Pulse Code Modulation)音频数据,相比AVPlayer而言,可以在输入前添加数据预处理,更适合有音频开发经验的开发者,以实现更灵活的播放功能。使用AudioRenderer播放音频涉及到AudioRenderer实例的创建、音频渲染参数的配置、渲染的开始与停止、资源的释放等。原创 2024-09-30 17:54:19 · 1183 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于napi_load_module_with_info实现的napi调用arkts的接口
napi_load_module_with_info接口的功能是进行模块的加载,当模块加载出来之后,可以使用函数napi_get_property获取模块导出的变量,也可以使用napi_get_named_property获取模块导出的函数,该函数可以在新创建的ArkTs基础运行时环境中使用原创 2024-09-30 17:32:05 · 895 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于Drawing的图形/文字绘制及双缓冲模拟实现刷新
Drawing绘制的内容无法直接在屏幕上显示,需要借用 XComponent 的能力支持,将绘制的内容通过Native Window送显。这里介绍如何使用Drawing绘制内容,然后通过NativeWindow贴图到XComponent的双缓冲实现。原创 2024-09-30 17:11:51 · 1255 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于C++能力的资源访问
获取拥有读/写权限的文件URI,当前需要在arkts侧获取并通过NAPI的方式将uri传递给C++侧,如通过picker获取对应uri,再将uri传递到c++侧。原创 2024-09-30 16:24:53 · 1070 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于ohpm的.ohpmrc仓库访问配制
在配置私仓过程中经常会因为配置问题访问不到中心仓或者私仓,或者在访问过程中超时报错,本篇文章主要讲解.ohpmrc文件的内外网配置,以及代理配置,还有对应的公私秘钥生成ca证书。原创 2024-09-30 15:22:48 · 1240 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于自定义注解和代码生成实现路由框架
在应用开发中无论是出于工程组织效率还是开发体验的考虑,开发者都需要对项目进行模块间解耦,此时需要构建一套用于模块间组件跳转、数据通信的路由框架。原创 2024-09-30 14:54:04 · 1060 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生能力的深色模式适配
对于原生开发的应用,深色模式适配是开发过程中常见的业务场景,系统可以通过状态栏中的深色模式开关配置系统的颜色模式,当系统颜色模式方式变化时,应用经常会遇到如下的业务诉求:原创 2024-09-30 13:44:49 · 1435 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于ArkUI的验证码实现
基于自定义键盘的验证码实现,进入页面后直接输入验证码,第一个验证码输入完后可自动跳到下一个,拉起的键盘是自定义数字键盘,验证码的输入框带选中效果。原创 2024-09-29 22:01:06 · 1248 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于ImageKit对图片进行处理
通过资源文件的RawFileDescriptor创建ImageSource。RawFileDescriptor可以通过步骤2的方案四获取。原创 2024-09-29 21:38:00 · 881 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于measure实现的文本测量
搜索框展示历史记录,单个子组件超过固定长度后展示省略号,固定只展示两行,超出的文字被截断,通过点击按钮展示后续文本内容原创 2024-09-29 21:01:49 · 1004 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于Camera Kit,获取相机流数据传递给native,进行压缩编码
ATS侧启动相机,使用摄像头采集视频流数据,获取相机视频流数据传递到native侧,通过buffer模式将视频编码成MP4文件保存到沙箱路径。原创 2024-09-29 20:20:56 · 1009 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于原生能力的设备唯一ID方案
HarmonyOS只提供了OAID和AAID,OAID需要权限涉及用户不同意和重置问题,AAID卸载应用或清除数据均会变化。如果需要保持应用在卸载时保证设备ID的持久化,则可用Asset Store Kit(关键资产存储开发服务)包含了关键资产存储服务开放的接口能力集合,提供了用户短敏感数据的安全存储及管理能力。其中,短敏感数据可以是密码类(账号/密码)、Token类(应用凭据)、其他关键明文(如银行卡号)等长度较短的用户敏感数据。原创 2024-09-29 20:03:13 · 1109 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——基于AOP的代码插桩
方案:通过Aspect.addBefore对自定义方法进行执行前插桩记录方法调用前时间、Aspect.addAfter对自定义方法进行执行后插桩记录执行后时间,以统计方法耗时及调用次数。let t1 = 0;let t2 = 0;})count+=1console.log(methodName+"方法耗时为t2 - t1 = " + (t2 - t1).toString());console.log(methodName+"方法调用次数为count = " + count);原创 2024-09-28 22:09:23 · 1046 阅读 · 0 评论 -
鸿蒙(HarmonyOS)实战开发篇——横竖屏切换开发实践
执行进入全屏时首先需要通过display获取当前的显示方向,并根据当前显示方向,执行对应的屏幕旋转逻辑。原创 2024-09-28 21:17:00 · 1540 阅读 · 0 评论