- 博客(190)
- 资源 (7)
- 收藏
- 关注
原创 鸿蒙 DLNA 投屏
参考文档鸿蒙系统提供了 API 作为官方投屏方案,但在实际使用中存在以下限制:生命周期受限: 由系统获取并返回,在设备连接成功后获取,在设备断开后不能继续使用,否则会抛出异常。这意味着每次断连后必须重新走完整的设备发现和连接流程,无法复用控制器实例。DRM 绑定过深: 支持在线 DRM 视频资源投播能力,需注册 DRM 许可证请求回调函数,获取许可证后调用处理许可证响应函数。这套机制与系统播放器深度耦合,对于自定义播放器或纯本地/局域网投屏场景来说,引入的复杂度远大于收益。灵活性不足:系统级 API 对投
2026-07-16 13:28:43
217
原创 我在鸿蒙上架了一款本地播放器,快来看看数据吧
一款功能全面的本地媒体播放器,支持视频、音乐播放,内置 FTP 和 SMB 客户端,畅享局域网资源。
2026-07-16 11:31:19
309
原创 用 AI 审核 Skill 消灭“编译器不报错“的隐藏 Bug
每踩一个坑,就花 5 分钟写一条 review skill,AI 就永远记住了。(半模态面板)绑在同一个组件上多次时,只有最后一个生效,前面的被静默覆盖。本质上,review skill 就是把团队的经验教训编码成 AI 可执行的检查项。踩坑的成本不白付,每一次都变成了长期的质量保障。不需要改 CI 配置、不需要装额外工具——skill 就是给 AI 看的文档,AI 看懂了就能执行。编译器管不了的事,人盯又容易疲劳,正好是 AI 审核擅长的场景。,只有最后一个会生效(编译器不报错)。
2026-07-13 13:30:45
194
原创 鸿蒙 AI 自动化开发:让 AI 学会自己编译、自己调试
UI 树告诉 AI「界面上有什么」,但无法告诉 AI「程序内部发生了什么」。AI 读这棵树,就像开发者用 DevTools 检查元素一样——它能看到页面上有什么文字、按钮在哪里、列表是否渲染了数据。这个脚本本身也是 AI 生成的——AI 知道需求是「下拉刷新」,所以它知道要验证「下拉后数据更新」。不是人编译了告诉 AI 结果,不是人看了界面告诉 AI 哪里不对,不是人翻了日志告诉你哪里报错。它不知道编译有没有过,不知道界面长什么样,不知道日志里有没有报错,不知道功能对不对。如果 AI 能自己读日志呢。
2026-07-13 10:30:28
375
原创 Three.js 实战 —— 从零构建 3D 原子模型
title: Three.js 实战 —— 从零构建 3D 原子模型date: 2026-06-24categories:展示地址我们要实现的东西:在 Vue 项目中,我们不想把 Three.js 打包进 vendor,而是通过 CDN 按需加载:要点:如果你使用 npm 安装,直接 即可。Three.js 的一切都离不开这三个核心对象:概念速记:没有光源的场景一片漆黑。我们使用三种光:光照类型选择指南:这是整个项目最有趣的部分。原子核由质子和中子紧密堆积而成,我们需要让它们在球体内自然分布。
2026-07-08 11:12:51
257
原创 将 libsmb2 集成到 HarmonyOS ArkTS 项目
本文介绍了在HarmonyOS ArkTS项目中集成libsmb2库实现SMB网络文件浏览与播放的完整方案。通过NAPI将libsmb2的C API绑定到ArkTS层,架构分为ArkTS调用层、NAPI中间层和libsmb2原生库层。文章详细说明了预编译库的放置位置、CMake配置方法、ABI过滤设置以及核心NAPI绑定实现,包括全局状态管理、函数导出示例和模块注册流程。该方案支持SMB3协议,可访问macOS共享文件夹,为鸿蒙媒体播放器项目提供了网络文件访问能力。
2026-05-08 14:31:02
705
原创 OpenHarmony 交叉编译环境 libsmb2 库
本文介绍了如何在OpenHarmony交叉编译环境中添加libsmb2库。libsmb2是一个轻量级的SMB2/SMB3协议用户空间客户端库,支持多种架构。文章详细说明了基于HPKBUILD编译体系的添加步骤,包括创建库目录、编写HPKBUILD文件、定义编译函数等关键环节,并提供了编译流程说明和注意事项。通过这套方法,开发者可以方便地将libsmb2集成到OpenHarmony项目中,实现跨平台SMB共享访问功能。
2026-05-08 11:41:16
464
原创 鸿蒙车机适配
本文介绍了鸿蒙系统车机适配的关键技术点,重点讲解了断点概念在多种设备屏幕适配中的应用。文章提供了核心代码实现,展示如何通过获取窗口尺寸、计算宽高比来确定断点类型,并根据不同断点设置对应的UI模式。适配方法需要放在windowSizeChange回调中,并强调要使用系统自带的单位转换函数来确保准确性。该方法同样适用于平板和折叠屏等设备的适配场景,为鸿蒙生态应用的多设备适配提供了实用解决方案。
2025-12-25 10:07:05
291
原创 Xcode 26 could not locate developer disk image for this device 无法定位开发者磁盘镜像
xcode could not locate developer disk image for this device
2025-09-25 10:21:39
2581
原创 鸿蒙动态共享包HSP
本文介绍了鸿蒙动态共享包(HSP)的构建与使用方法。HSP分为应用内HSP和集成态HSP两种状态,前者与特定应用包名绑定,后者更灵活。构建步骤包括创建模块、开发代码、打包生成tgz文件,并通过ohpm安装使用。文章还特别说明了包安装方式的注意事项,包括推荐使用dev eco编译器终端安装,以及如何在项目中正确引用HSP模块。最后简要提及集成态HSP需要额外配置工程和模块级别的build-profile.json5文件。
2025-08-11 15:17:30
597
原创 鸿蒙Des 加密解密 C++版本
本文介绍了在鸿蒙系统中使用C++实现DES加密解密的方案。由于鸿蒙API20(2025年10月发布)才内置DES算法,当前需通过C++实现。文章详细说明了如何基于开源库cryptopp进行开发:首先下载并编译cryptopp库,配置鸿蒙SDK环境;然后在项目中创建cpp目录结构,通过CMakeLists.txt引入cryptopp库;最后展示了napi_init.cpp的核心解密代码实现,包括hex解码、随机字符串生成和DES解密功能。该方案将加密算法打包成so库,为鸿蒙应用提供加密能力。
2025-08-11 14:10:08
1358
原创 鸿蒙选择本地视频文件,并获取首帧预览图
由于文件权限获取不太方便,现在使用的是 picker 的方式获取本地视频文件。文件位于我的手机/下载目录下。
2025-07-13 20:44:23
538
原创 鸿蒙项目构建配置
在使用 git 管理代码的时候,不同的人或者不在同一台电脑上,dev eco 这个编译器需要经常的给开发版本签名,在发布版本的时候还需要手动配置相应的签名;
2025-07-13 20:06:28
753
原创 鸿蒙主体分割/剔除背景
鸿蒙原生提供用于实现主体分割/剔除背景的API,有一些场景例如说证件照之类的应用就非常好做了。话不多话上代码。${${${?
2024-12-23 09:32:56
693
原创 鸿蒙审核版本页面显示异常之混淆代码问题
代码写的好好的,真机测试也运行的好好的,高高兴兴的提测去了。都填好了之后就等着测试结果了。等了半天收到了一个页面无法展示的评审意见。啊,难道是测试的网络有问题?还是打包有什么测试代码?仔细查了半天也没啥发现。由于签名的版本也无法安装,无法测试,但是正常的开发版本也没啥问题,思来想去感觉差别也就编译和混淆了。通过弄测试版,经过几个版本测试,发现去掉混淆之后就正常了。但是完全去掉好像也不太好,但是看文档也不太知道应该用哪个好。
2024-12-19 13:50:03
743
原创 我在鸿蒙上架了一个元服务
在每一个即将踏出门槛的时刻,人们心中往往怀揣着对未来的期许与不安,而此时若能静下心来,通过古老的占卜仪式询问天地之间的预兆,似乎总能感受到一种莫名的力量,在冥冥之中指引着前行的方向。有趣的是,无论占卜的结果如何,这一天的经历仿佛被注入了一股积极向上的活力,好事就像约定好了一样,不期而遇地降临。趁着开发鸿蒙next应用及元服务的热潮,也赶一波时髦。元服务搜一下小鱼抽签。天开地辟结良缘,日吉时良万事全,若得此签非小可,人行中正帝王宜。此卦盘古初开天地之象,诸事皆吉也。接入了App linking,
2024-12-19 13:49:39
561
原创 鸿蒙隐私策略问题/生成
开发应用可能还比较简单,但是编写隐私策略可真的是头大到不行,而且这个隐私策略还没有一个比较好用的模版,老的思路也就是拷贝大厂的隐私策略,然后把相应的名称稍微改改,保存一下变成自己的。这样有一些必要的模块可能就随着不符合自己的应用的部分给删除了,然后提交审核之后就被拒绝了,然后就要跟着审核意见来一遍一遍的改。不过其实很多大厂的隐私策略也有很多没什么用的地方,可能也没有对上审核的点。经过一系列挠头之后,发现华为提供了一个协议服务~,只需要填一些空之后就可以生成隐私政策了。
2024-12-18 09:03:41
652
原创 鸿蒙快速切换签名配置
根据完成签名之后。会在Signing Configs里边生成一个签名项目。但是因为发布打包这个配置项目是需要手动配置的。那不能开发的时候用自动测试签名,上线的时候还需要手动配置一遍这个吧。想想这么弄就很麻烦。这个时候就要开始想个简单的办法了。翻了翻文档,发现有一个比较好用的配置方式,如下逐步介绍一下如何配置。
2024-12-18 09:02:12
1805
原创 鸿蒙保存读取沙盒文件
有些时候需要保存并读取沙盒环境的文件。这样做保存一些临时文件,确保发送网络之前数据不会丢失,或者存储一些只需要在本地使用的数据等等。本文介绍一下相关的操作方式。
2024-11-27 20:08:24
1308
原创 鸿蒙组件截图并保存到相册
查看了很多文档之后找到一个可行的方案,大体步骤就是先截图到一个 image的 pixelmap 里边,然后把这个 pixelmap 转换成需要保存的格式,譬如过jpg格式,然后保存到相册。本例子以保存成jpg为例,设置一下图片质量,如果说保存的图片大小还是太大的话,可以先把图片的分辨率稍微降低一些,然后再次编码并设置更低的图片质量。想做一个功能把一个组件保存到相册,当然组件不一定是整个屏幕的,而是需要保存下载的那一个部分。能够设置的东西比较少,大体上就是按钮的icon大小及颜色一些的。
2024-11-20 22:45:51
1481
原创 鸿蒙改变状态栏和安全区域颜色之 expandSafeArea
直接设置build里边根元素的背景色之后,本想着是整个页面的颜色全变成相应的颜色,不过实际上状态栏跟地步安全区域是不受影响的。这个时候一般可能都会各种地方找API来设置状态栏跟安全区域的颜色了。不过其实还提供了一个相对于比较简单的方式即 expandSafeArea 这个属性设置。这个属性可以使我们的元素在可以相应的最靠近某一侧边缘的时候拓展到屏幕的边缘。如果这个设置加在了 column 里边中间的元素上是不生效的,使用这个设置就非常方便了。可以发现最上边和最下边的颜色不受影响,还是白色的。
2024-11-19 21:26:33
973
原创 鸿蒙加载网络图片并转换成PixelMap
基于API12.有一些图片功能需要使用 PixelMap 类型的参数,但是使用Image组件之类的时候无法获取到 PixelMap 类型数据。因此只能是把图片下载下来然后加在并转换一下。
2024-11-17 21:26:42
1135
2
原创 鸿蒙跳转商店应用页面(给我评分功能)
鸿蒙跳转商店应用页面(给我评分功能)基于 API12。参考资料一般来说应用都会有一个给我评分的功能,方便用户能够直接给个五星好评,好把应用的评分给刷上去,毕竟有一些用户还是会看商店应用详情页面的评价及评分的。那么如何做一个应用内的跳转功能呢。其实也方便,鸿蒙一般来说打开其他应用都是通过want的形式。把一下代码加到一个点击事件上就完成了。import { common, Want } from '@kit.AbilityKit';import { BusinessError } from '@k
2024-11-06 09:02:34
1165
原创 鸿蒙开发 getContext 获取不到实例
因此调用的时候就把 getContext 直接放在文件里边,不在任何的 class 里边。而由于这个文件的内容需要在 UIAbility 内调用,因此在 UIAbility 里边引入这个文件,这样在 UIAbility 初始化之前就会执行。经过一阵摸索之后发现 getContext 在 UIAbility 实例话之前调用就会出现这个现象。写了很多代码之后,不知道增加了点什么突然间在一个莫名其妙的地方报了一个错误就崩溃了。查找了半天以为是文件循环引用导致的,改了半天,不过好像没什么效果。
2024-10-25 15:01:31
756
原创 打包macos应用到dmg文件
由于macos自带的看图软件太麻烦了,还受到沙箱的限制,访问本地文件各种询问,最主要的是不能打开一个图片之后不能直接查看同文件夹下的其他图片,感觉还是挺麻烦的。想看其他图片的时候还要全选才行。而且看GIF图真的是反人类,非要把所有的帧都给弄出来,我只想要看流畅的GIF啊。因此自己写了一个看图的工具弄着玩,感觉效果还挺好的,推荐给大家也试试。在这个过程中顺便学习了一下打包dmg的方法,这里记录一下。这里用到的是Xcode 15.4,用的开发账号签名模式。欢迎使用,提提意见~
2024-09-06 11:11:37
1558
原创 鸿蒙双向认证
切换到鸿蒙也要用上双向认证。使用的其中的 rcp 功能,详细文档双向认证包含两个方向,分为客户端验证服务端的证书和服务端验证客户端的证书。
2024-09-06 10:54:56
1340
原创 js 获取favicon
挖个坑想着搞一个管理书签的插件。里边有各种推拽排序的功能方便操作管理,还能定时更新检查已经失效的网页链接,还能够根据现有的网站域名归类显示。但是其中有一个需要显示各种网站的图标,嗯,这个不能都下载下来搞一套吧,感觉也弄不完,这样的话就需要获取一下网站的favicon.ico。此方法可能无法覆盖到所有的情况,只是对于通常favicon存在于 域名/favicon.ico 的情况。那么接下来此文就是记录一下如何获取 favicon 的。限定好了场景,那么接下来就是要如何获取这个图标了。
2024-07-29 16:50:12
802
原创 鸿蒙多尺寸屏幕适配
基于API12。之前开发的时候都涉及同设计沟通,都是基于设计稿的宽度来适配的。想小程序默认都是750rpx,iOS都是pt。但是鸿蒙支持的设备宽度跨度太大,有单屏幕、折叠屏、平板、后续应该还有电脑,这样真正的能做到一次开发鸿蒙全平台部署了。看起来是提前实现了swiftUI的设计目的。这种情况参考网页的栅格布局,鸿蒙系统提供默认的断点xs, sm, md, lg四类。
2024-07-29 16:49:41
1656
1
原创 Chrome extension 修改 window.navigator.userAgent
网页开发有一些场景会做一些ua的判断,特别是在手机端展示的页面,非手机就不让看了,这还是挺让人觉得不方便的,毕竟在电脑上各种屏蔽广告的插件还是很强大的。那么有没有办法假装电脑版的网页是手机设备呢。毕竟之前做过的项目一般来说是判断一下 window.navigator.userAgent 来判定当前是否是手机设备。然后再判断是否要显示,或者判断是否要支持一些特殊的功能。
2024-05-30 17:21:31
1954
原创 js 正则匹配返回所有匹配到的范围
js正则默认不返回匹配到的范围,有些场景用起来就不太方便。如果想针对于匹配到的位置多次操作就要另外想个办法了。翻了翻正则的文档发现还有个 exec 可以用。indexOf 这个只能获取到第一个出现的位置,其他位置不太行,这个方法好像就行不通了。自己一个个找,写个kmp算法感觉有比较麻烦。还能记录上次匹配的位置。那么就可以这么来了。
2024-05-30 17:20:33
624
原创 iframe隐藏scrollbar并且还能够继续滚动
frame 有个属性 scrolling,直接设置 scrolling=‘no’ 即可隐藏scrollbar。不过感觉有可能谁闲的设置过scrollbar的宽度怎么办呢,那就把这个值改成获取的吧。另外一个就是外边包一层比iframe窄的div,然后 overflow 设置成隐藏。查了好久的文档,太累了,目前暂时使用了直接把scrollbar隐藏的策略。以下是全部代码,基于vue+tailwindcss。目前感觉这个办法还算是效果比较好。
2024-05-02 20:01:02
1903
原创 ijkplayer iOS编译问题之[-Wincompatible-function-pointer-types]
编译环境 Apple M1 Pro Sonoma 14.1.2搜了搜好像没找到相关编译问题的,但是还需要用这个东西,只能再研究一下日志了,发现每个错误都有一个,感觉好像就跟这个有关系了,然后搜了搜尝试修改一下解决了问题。
2024-04-24 16:18:49
1673
3
xcode could not locate developer disk image for this device - iPhoneOS.platform/DeviceSupport/14-2
2025-09-25
xcode could not locate developer disk image for this device - iPhoneOS.platform/DeviceSupport/14-1
2025-09-25
xcode could not locate developer disk image for this device - iPhoneOS.platform/DeviceSupport/13-2
2025-09-25
xcode could not locate developer disk image for this device - iPhoneOS.platform/DeviceSupport/13-1
2025-09-25
xcode could not locate developer disk image for this device - iPhoneOS.platform/DeviceSupport/12
2025-09-25
鸿蒙项目构建配置示例工程
2025-07-13
tailwindcss+vue3+vite+preline
2024-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅