- 博客(35)
- 收藏
- 关注
原创 鸿蒙用户首选项数据持久化
用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。当用户希望有一个全局唯一存储的地方,可以采用用户首选项来进行存储。Preferences会将该数据缓存在内存中,当用户读取的时候,能够快速从内存中获取数据,当需要持久化时可以使用flush接口将内存中的数据写入持久化文件中。
2025-03-13 12:13:51
1014
原创 鸿蒙WebSocket的使用竟如此简单
使用WebSocket建立服务器与客户端的双向连接,需要先通过createWebSocket()方法创建WebSocket对象,然后通过connect()方法连接到服务器。当连接成功后,客户端会收到open事件的回调,之后客户端就可以通过send()方法与服务器进行通信。当服务器发信息给客户端时,客户端会收到message事件的回调。当客户端不要此连接时,可以通过调用close()方法主动断开连接,之后客户端会收到close事件的回调。若在上述任一过程中发生错误,客户端会收到error事件的回调。
2025-03-13 12:11:56
343
原创 鸿蒙保存图片到相册
在其它手机端,若想保存图片到相册,需要申请对应的权限,而鸿蒙中对应的权限为受限开放权限,普通应用一般不让申请,这个时候我们可以使用安全保存控件来临时申请权限,用于保存图片到相册。
2024-12-31 09:38:39
750
原创 鸿蒙ArkUI-X简介
ArkUI是一套构建分布式应用的声明式UI开发框架。它具备简洁自然的UI信息语法、丰富的UI组件、多维的状态管理,以及实时界面预览等相关能力,帮助您提升应用开发效率,并能在多种设备上实现生动而流畅的用户体验。ArkUI-X进一步将ArkUI扩展到了多个OS平台:目前支持OpenHarmony、HarmonyOS、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。
2024-11-27 22:02:26
1088
原创 鸿蒙ArkUI-X已更新适配API13啦
ArkUI-X 5.0.1 Release版配套OpenHarmony 5.0.1 Rlease,API 13,新增适配部分API 13接口支持跨平台;框架能力进一步完善,支持Android应用非压缩模式,支持Android Fragment对接跨平台。ACE Tools工具易用性提升,支持创建module时选择module类型、config提示优化和联动编译。组件跨平台能力进一步增强,新增XComponent组件支持跨平台。
2024-11-27 09:57:06
777
原创 鸿蒙安全控件之位置控件简介
位置控件使用直观且易懂的通用标识,让用户明确地知道这是一个获取位置信息的按钮。这满足了授权场景需要匹配用户真实意图的需求。只有当用户主观愿意,并且明确了解使用场景后点击位置控件,应用才会获得临时的授权,获取位置信息并完成相应的服务功能。一旦应用集成了位置控件,用户点击该控件后,无论应用是否已经申请过或被授予精准定位权限,都会在本次前台期间获得精准定位的授权,可以调用位置服务获取精准定位。
2024-11-26 12:37:50
1032
原创 鸿蒙安全控件之保存控件简介
保存控件是一种特殊的安全控件,它允许用户通过点击按钮临时获取存储权限,而无需通过权限弹框进行授权确认。集成保存控件后,当用户点击该控件时,应用会获得10秒内访问媒体库特权接口的授权。这适用于任何需要将文件保存到媒体库的应用场景,例如保存图片或视频等。与需要触发系统应用并由用户选择具体保存路径的Picker不同,保存控件可以直接保存到指定的媒体库路径,使得操作更为便捷。保存控件效果如图所示。
2024-11-26 06:58:56
188
原创 鸿蒙安全控件之粘贴控件简介
粘贴控件是一种特殊的系统安全控件,它允许应用在用户的授权下无提示地读取剪贴板数据。在应用集成粘贴控件后,用户点击该控件,应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景,避免弹窗提示对用户造成干扰。例如,用户在应用外(如短信)复制了验证码,要在应用内粘贴验证码。用户原来在进入应用后,还需要长按输入框、在弹出的选项中点击粘贴,才能完成输入。而使用粘贴控件,用户只需进入应用后直接点击粘贴按钮,即可一步到位。粘贴控件效果如图所示。
2024-11-22 09:46:25
874
原创 鸿蒙安全控件简介
安全控件是系统提供的一组系统实现的ArkUI组件,应用集成这类组件就可以实现在用户点击后自动授权,而无需弹窗授权。它们可以作为一种“特殊的按钮”融入应用页面,实现用户点击即许可的设计思路。安全控件坚持仅采集实现业务功能所必须的个人数据,以服务于用户的需求,帮助开发透明、可选、可控的隐私合规应用。
2024-11-21 22:26:37
382
原创 鸿蒙无权限实现图片选择拍照和录视频
在鸿蒙开发中,系统提供了PhotoViewPicker选择图片,cameraPicker拍照和录视频,此方式能够达到无需向用户申请权限就能选图片、拍照和录视频。除了用户操作的选图、拍照和录视频,其它时间APP无权获取相册图片,无权调用相机,对于用户来说,使用相册和相机都是很明确的时机,安全性非常高。以下来看看具体的使用方式。
2024-11-21 12:10:57
338
原创 鸿蒙开发Hvigor插件动态生成代码
Hvigor允许开发者实现自己的插件,开发者可以定义自己的构建逻辑,并与他人共享。Hvigor主要提供了两种方式来实现插件:基于hvigorfile脚本开发插件、基于typescript项目开发。下面以基于hvigorfile脚本开发插件进行介绍。
2024-11-20 17:51:21
1351
原创 鸿蒙hvigor构建任务依赖与生命周期简介
在Hvigor执行构建的过程中,hvigor-ohos-plugin会向Hvigor进行任务的注册,Hvigor会根据构建的任务执行有向图依次调用对应的插件来执行相应任务,在完成编译、打包、签名等一系列任务后,Hvigor也就正式完成了构建。hvigor-ohos-plugin是默认的构建插件,为任务(Task)的完成提供业务逻辑支持,比如为Hvigor提供Hap、Har和Hsp打包服务等任务,每一种任务的具体执行逻辑由本模块中不同的插件来提供。在下图中所有绿色标记的线框为可以使用的hook点。
2024-11-20 11:33:00
933
原创 鸿蒙开发Hvigor任务简介
编译构建工具DevEco Hvigor(以下简称Hvigor)是一款基于TS实现的构建任务编排工具,主要提供任务管理机制,包括任务注册编排、工程模型管理、配置管理等关键能力,提供专用于构建和测试应用的流程和可配置设置。DevEco Studio使用构建工具Hvigor来自动执行和管理构建流程,实现应用/服务构建任务流的执行,完成HAP/APP的构建打包。Hvigor可独立于DevEco Studio运行,这意味着,你可以在DevEco Studio内、命令行工具或是集成服务器上构建应用。
2024-11-18 18:44:08
282
原创 API13Bate版来了DevEco已更新快来看新功能吧
HarmonyOS 5.0.1 Beta3,是HarmonyOS开发套件基于API 13正式发布的首个Beta版本。该版本在OS能力上主要增强了C API的相关能力,多个特性补充了C API供开发者使用。
2024-11-18 12:00:17
589
原创 鸿蒙Navigation拦截器实现页面跳转登录鉴权方案
NavPathStack提供了setInterception方法,用于设置Navigation页面跳转拦截回调。该方法需要传一个NavigationInterception对象,该对象包含三个回调函数willShow,didShow和modeChange,我们在willShow页面即将显示时,进行拦截处理。先判断是否登录,没有登录,就重定向到登录页面,若已登录,则继续后续行为,不做拦截。示例如下@Entry})build() {
2024-11-15 12:01:36
2232
原创 鸿蒙Navigation入门使用
Navigation组件适用于模块内和跨模块的路由切换,通过组件级路由能力实现更加自然流畅的转场体验,并提供多种标题栏样式来呈现更好的标题和内容联动效果。一次开发,多端部署场景下,Navigation组件能够自动适配窗口显示大小,在窗口较大的场景下自动切换分栏展示效果。
2024-11-14 22:24:14
827
原创 鸿蒙Navigation知识点详解
Navigation通过customNavContentTransition事件提供自定义转场动画的能力,通过如下三步可以定义一个自定义的转场动画。构建一个自定义转场动画工具类CustomNavigationUtils,通过一个Map管理各个页面自定义动画对象CustomTransition,页面在创建的时候将自己的自定义转场动画对象注册进去,销毁的时候解注册;
2024-11-14 12:31:22
905
原创 鸿蒙高质量代码静态检测200条四
@cross-device-app-dev/font-size字体大小要求至少为8fp以便于阅读@cross-device-app-dev/grid-columns-span不推荐开发者将栅格中所有的GridCol子组件只设置span属性,且值与父组件的columns属性相等@cross-device-app-dev/grid-span-value在栅格布局组件GridCol中,span和offset不建议使用小数@cross-device-app-dev/size-u
2024-11-13 12:10:44
365
原创 鸿蒙高质量代码静态检测200条三
@performance/hp-arkts-no-use-any-export-current避免使用export * 导出当前module中定义的类型和数据@performance/hp-arkts-no-use-any-export-other避免使用export * 导出其他module中定义的类型和数据@performance/hp-arkui-avoid-empty-callback避免设置空的系统回调监听@performance/hp-arkui-avoid
2024-11-13 12:09:54
796
原创 鸿蒙自定义组件生命周期
以上示例中,Index页面包含两个自定义组件,一个是被@Entry装饰的MyComponent,也是页面的入口组件,即页面的根节点;一个是Child,是MyComponent的子组件。只有@Entry装饰的节点才可以使页面级别的生命周期方法生效,因此在MyComponent中声明当前Index页面的页面生命周期函数(onPageShow / onPageHide / onBackPress)。生命周期流程如下图所示,下图展示的是被@Entry装饰的组件(页面)生命周期。
2024-11-10 15:50:41
899
原创 鸿蒙Navigation页面生命周期
Navigation作为路由容器,其生命周期承载在NavDestination组件上,以组件事件的形式开放。其生命周期大致可分为三类,自定义组件生命周期、通用组件生命周期和自有生命周期。其中,aboutToAppear和aboutToDisappear是自定义组件的生命周期(NavDestination外层包含的自定义组件),OnAppear和OnDisappear是组件的通用生命周期。剩下的六个生命周期为NavDestination独有。生命周期时序如下图所示。
2024-11-10 15:49:03
438
原创 UIAbility组件生命周期
当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。
2024-11-07 21:48:11
890
原创 鸿蒙接入Flutter3.22
就可以运行到手机上了,若连接的是Android手机,则可以直接运行并在手机上查看效果。若连接的是鸿蒙NEXT手机,则需先配置证书,配置证书的地方在。(img-y0hZTzsV-1730953738905)]鸿蒙平台ohos下的flutter.har包可以拷贝到其它项目中直接使用。鸿蒙平台ohos下的flutter.har包可以拷贝到其它项目中直接使用。文件中,证书配置完成后,就直接直接运行并在鸿蒙NEXT手机上查看效果了。
2024-11-07 12:29:39
524
原创 Context的典型使用场景
基类Context提供了获取应用文件路径的能力,ApplicationContext、AbilityStageContext、UIAbilityContext和ExtensionContext均继承该能力。此路径是HAP相关信息推荐的存放路径,这些文件会跟随HAP的卸载而删除,但不会影响应用级别路径的文件,除非该应用的HAP已全部卸载。通过ApplicationContext获取应用级别的应用文件路径,此路径是应用全局信息推荐的存放路径,这些文件会跟随应用的卸载而删除。
2024-11-06 19:04:56
1168
原创 认识鸿蒙Context
Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area(文件分区)等,以及应用的一些基本方法,例如createBundleContext()、getApplicationContext()等。UIAbility组件和各种ExtensionAbility派生类组件都有各自不同的Context类。
2024-11-05 21:45:12
336
原创 鸿蒙Banner图一多适配不同屏幕
随着终端设备形态日益多样化,分布式技术逐渐打破单一硬件边界,一个应用或服务,可以在不同的硬件设备之间随意调用、互助共享,让用户享受无缝的全场景体验。我们在使用Banner图时,会发现在中大屏设备上,Banner的宽度太大,当我们将高度固定时,在大屏设备上,高度又太小,图片裁剪严重。我们现在只需要判断设备是小屏还是中大屏就可以了,这里借助GridRow栅格组件的断点能力,针对小屏和非小屏设备,设置不同的displayCount和aspectRatio就可以了,实现小源码如下。在不同设备的显示效果如下。
2024-11-04 16:55:19
430
原创 鸿蒙适配一多搭建首页框架
随着终端设备形态日益多样化,分布式技术逐渐打破单一硬件边界,一个应用或服务,可以在不同的硬件设备之间随意调用、互助共享,让用户享受无缝的全场景体验。而作为应用开发者,广泛的设备类型也能为应用带来广大的潜在用户群体。但是如果一个应用需要在多个设备上提供同样的内容,则需要适配不同的屏幕尺寸和硬件,开发成本较高。HarmonyOS系统面向多终端提供了“一次开发,多端部署”(后文中简称为“一多”)的能力,让开发者可以基于一种设计,高效构建多端可运行的应用。“一多”建议从最初的设计阶段开始就拉通多设备综合考虑。
2024-11-03 20:29:06
351
原创 鸿蒙Navigation处理启动页跳转到首页问题
在使用Navigation时时,你是否遇到了这样一个问题,Navigation加载启动页为入口,在启动页replace到首页,使首页替换换启动页,结果发现不生效,启动页依然存在。
2024-10-31 11:20:59
527
原创 鸿蒙封装日志库并支持跳转显示行号
查看日志时,你是否经常遇到不知道日志是哪个地方打印的,为了便于查找位置,专门将文件名或类名设置为tag,日志还得传个标记,用于生产环境不打印日志,控制台的日志要是能点击定位到所在位置就好了。现在咱们自己来封装一个日志库,实现这些功能。
2024-10-30 10:49:03
284
原创 鸿蒙多环境配置(二)
你是否每次手动更改发布证书打app包上加应用市场呢?你是否每次打完包都手动在名称后添加版本号和时间呢?不同环境的依赖包经常打包时忘记改呢?其实这些鸿蒙都支持动态配置。
2024-10-28 10:32:34
655
4
原创 鸿蒙多环境配置(一)
在实际开发过程中,你是否遇到了如下一些问题。项目分多套环境,如开发环境,生产环境,甚至还有灰度环境,不同的环境请求的服务器地址不一样,不同环境依赖的库也不一样,使用的三库key也不一样。测试会问开发环境的包和生产环境的包可以同时安装在手机上吗,我怎么区分哪个是生产环境的包,开发环境能否加个入口等等,这些问题在鸿蒙项目开发中该如何处理呢?
2024-10-27 08:09:59
2304
原创 Android常用加密解密实现方式
1.MD5,SHA1加密校验MD5,SHA1等加密算法我们通常不用来做加密,因为解密成本非常大,我们一般用MD5,SHA1等用来做文件校验,唯一性校验等功能。常见的场景如防止别人恶意篡改我们的APP软件,这个时候我们可以对文件做MD5或SHA1算法校验,生成一个唯一值。用户通过这两个值可以判断这个APP是否为官方渠道。算法如下:/** * MD5加密. * * @param stream...
2019-04-08 21:29:00
2018
1
原创 android学习笔记
1.android禁止横竖屏切换 在AndroidManifest.xml文件中对应的Activity的标签中添加属性android:screenOrientation。属性为android:screenOrientation=" portrait"时表示该Activity只能竖屏显示,属性为android:screenOrientation="landscape"时表示该Activit
2016-04-12 11:43:10
166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人