版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4手势密码应用目录1项目描述2学习目标3知识图谱4技术准备5项目实施6项目小结7AI赋能1项目描述本项目创建了一个手势密码应用,实现了密码设置、验证和重置功能。手势密码应用:在九宫格图案上输入密码,用于密码验证。手指触碰屏幕上的手势密码区域时,PatternLock组件进入输入状态;手指离开屏幕时,该组件结束输入状态并向应用返回输入的密码。本项目使用@kit.ArkData异步获取用户设定过的密码。应用运行效果如图4-1~图4-6所示。1项目描述图4-1请输入密码效果图
图4-2再次输入密码效果图
图4-3设置密码效果图图4-1请输入密码效果图4-2再次输入密码效果图4-3设置密码效果图4-4密码错误效果图4-5密码不符合效果图4-6解锁成功效果2学习目标知识目标1.掌握ArkDataPreferencesAPI的常用方法及生命周期2.理解轻量级键值对存储机制。3.熟悉PatternLock组件的属性、事件及PatternLockController控制器的使用方法技能目标1.能够使用PreferencesAPI完成数据的异步读写、更新与持久化。2.能够基于PatternLock组件实现图案密码的设置、验证与重置完整流程。素质目标1.具有良好的数据安全与隐私保护意识,遵循最小权限与加密存储规范。2.提升异常处理与调试能力,能主动记录日志并定位数据操作错误。3知识图谱本项目所涉及的知识图谱,以“手势密码App”为核心,系统地梳理了鸿蒙应用开发的核心知识体系。图谱采用中心辐射式结构,在核心主题节点下延伸出五大模块,直观呈现了从ArkData概述、ArkDataPreferencesAPI、分布式键值数据库、关系数据库到PatternLock组件的完整学习路径。项目知识图谱如图4-7所示。图4-7
项目知识图谱4技术准备4.4技术准备4.4.1ArkData概述ArkData(方舟数据管理)是HarmonyOS提供的一套数据管理框架,它为开发者提供了数据存储、数据管理和数据同步能力,支持多种数据存储方式。ArkData的设计目标是简化数据管理复杂度,提高数据访问效率,并确保数据安全。ArkData框架结构:ArkData框架由以下几个核心组件构成,各自针对不同的数据管理场景提供专业解决方案:Preferences:轻量级键值对存储系统,适用于应用配置和用户偏好设置。DistributedKVStore:分布式键值数据库,支持跨设备数据同步。RelationalStore:关系型数据库,支持SQL查询和复杂数据关系管理。4技术准备4.4.2ArkDataPreferencesAPI(代码实现参见教材)Preferences为应用提供Key-Value键值型的数据处理能力,支持应用持久化存储轻量级数据,并对其进行修改和查询。当用户有轻量级的键值型数据需要存储时,可以采用Preferences来进行。Preferences一般适用于保存用户的个性化设置,例如字体大小、是否开启夜间模式、应用启动页的手势密码等。图4-8展示了Preferences的运作机制,用户程序通过ArkTS接口调用Preferences读写对应的数据文件。开发者可以将持久化文件的内容加载到Preferences实例,每个文件唯一对应到一个Preferences实例。系统会通过静态容器将该实例存储在内存中,直到主动从内存中移除该实例或删除该文件。持久化文件保存在应用沙箱内部,可以通过context获取其路径。图4-8用户首选项运作机制4技术准备4.4.3键值型数据库(代码实现参见教材)分布式键值数据库(DistributedKVStore)为应用程序提供了跨设备的分布式键值存储能力。通过调用相关接口,应用程序可以将数据保存到分布式键值数据库中,并对数据进行增加、删除、修改、查询和同步操作。该模块支持单版本数据库(SingleKVStore)和设备协同数据库(DeviceKVStore),分别适用于不同的使用场景。键值型数据库(DistributedKVStore)持久化功能的相关接口如表4-3所示。4技术准备4.4.4关系数据库(代码实现参见教材)关系数据库(RelationalStore)基于SQLite组件,适用于存储包含复杂关系数据的场景,比如一个班级的学生信息(需要包括姓名、学号、各科成绩等),又或者一个公司的职员信息(需要包括姓名、工号、职位等)。由于这种数据之间有较强的对应关系,复杂程度比键值型数据更高,因此需要使用关系数据库来持久化保存。关系数据库为应用提供通用的操作接口。其底层使用SQLite作为持久化存储引擎,支持SQLite的多种数据库特性,包括事务、索引、视图、触发器、外键等。图4-9展示了关系数据库运作机制。
图4-9关系数据库运作机制4技术准备4.4.5PatternLock组件1.组件简介PatternLock是HarmonyOS提供的一个手势密码组件,是图案密码交互核心,用于创建九宫格样式的图案密码输入界面。该组件允许用户通过连接点创建和输入独特的图案密码,广泛应用于应用锁定、隐私保护和身份验证场景。当用户手指触碰组件时,组件进入输入状态,开始记录连接点的路径;当手指离开屏幕时,输入完成,组件会将绘制的路径以数字数组的形式返回给应用程序进行存储或验证。PatternLock组件封装了复杂的触摸事件处理、图形绘制、状态管理逻辑,使开发者能够轻松实现专业的图案密码功能,无须处理底层的交互细节。组件提供了丰富的自定义选项,包括外观样式、交互行为以及状态反馈,同时支持通过控制器进行编程控制。2.常见使用场景应用锁定:保护整个应用的内容,用户通过图案密码验证后才能访问应用。敏感内容保护:在应用内部保护特定的敏感界面或信息,如支付信息、个人隐私数据等。身份验证:在执行支付、转账等敏感操作前进行身份验证。4技术准备3.组件常用属性/事件PatternLock组件常用属性/事件如表4-5所示4技术准备4.PatternLockController控制器对象PatternLockController是PatternLock组件的控制器对象,用于以编程方式操作和管理PatternLock组件的状态和行为。它提供了在组件生命周期之外控制组件的能力,例如重置图案、改变视觉状态等。控制器遵循HarmonyOS的"组件+控制器"设计模式,分离了UI展示和逻辑控制,使代码更加清晰和可维护。通过PatternLockController,开发者可以在任何适当的时机控制PatternLock组件,而不仅限于组件的内部事件处理。创建控制器,在组件类中声明PatternLockController实例://在组件中创建控制器实例privatepatternLockController:PatternLockController=newPatternLockController();关联到组件,在构建PatternLock组件时将控制器传入。PatternLock(this.patternLockController)
//将控制器传递给组件
.sideLength(300)
.circleRadius(12)
//其他属性设置...使用控制器操作组件,创建并关联控制器后,可以在代码中任何地方使用它来操作组件。//重置图案this.patternLockController.reset();//设置图案状态为正确this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT);//设置图案状态为错误this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG);4技术准备PatternLockController方法的介绍如表4-6所示。(代码实现参见教材)以下代码展示了PatternLock组件的使用方法,它通过patternLockController来管理交互状态,使用.sideLength(300)设置组件宽度为300vp,.circleRadius(14)定义每个点的半径为14vp。当用户手指在点间滑动绘制图案时,会触发onPatternComplete回调函数,该函数接收用户绘制的点序号数组(如连接左上、中上、正中3个点会得到[0,1,4])。首先校验图案复杂度(要求至少连接3个点),然后将图案序列存入currentPattern状态变量,并立即与预设的正确密码“0,1,4”进行字符串比对,验证成功时调用setChallengeResult(PatternLockChallengeResult.CORRECT)使点显示为绿色成功状态,失败则显示为红色错误状态。不管显示为哪种状态,都会在1.5或2s后通过reset方法自动重置界面,整个过程通过修改message状态变量实时反馈文字提示,形成一个完整的图形密码输入、验证和状态反馈交互闭环。运行效果如图4-10、图4-11、图4-12所示。4技术准备图4-10绘制图案效果图图4-11密码正确效果图图4-12密码错误效果图5项目实施4.5.1项目目录结构项目目录结构如图4-13所示。图4-13项目目录结构图5项目实施
4.5.2准备项目资源(代码实现参见教材)字符串资源,其所在文件为entry/src/main/resources/base/element/string.json。4.5.3创建常量(代码实现参见教材)其所在文件为entry/src/main/ets/common/CommonConstants.ets。4.5.4工具类实现(代码实现参见教材)1.entry/src/main/ets/utils/Logger.ets——日志工具类2.entry/src/main/ets/utils/PreferencesUtils.ets——存储工具类4.5.5构建自定义组件(代码实现参见教材)entry/src/main/ets/view/TitleBar.ets——标题栏组件其效果如图4-14中的红框处所示。图4-14标题栏组件效果图5项目实施4.5.6项目实现1.主入口界面实现entry/src/main/ets/pages/Index.ets——本项目的主入口界面,其效果如图4-15中的红框处所示.2.Home界面实现entry/src/main/ets/pages/Home.ets——应用的解锁成功界面,其效果如图4-16中的红框处所示.
图4-15主入口界面效果图4-16应用解锁成功界面5项目实施4.5.7应用测试1.预览器中的测试效果如图4-17所示。图4-17预览器中的测试效果5项目实施2.在模拟器中测试模拟器中的测试效果如图4-18所示。图4-18模拟器中的测试效果6项目小结本项目以“手势密码”应用为案例,系统展示了如何在HarmonyOS平台下,结合ArkTS语言、声明式UI范式和ArkData数据管理框架,开发一个安全、实用的图案密码应用。核心的PatternLock组件为用户提供了九宫格图案输入体验,配合PatternLockController实现了图案的动态控制与状态反馈。通过@State装饰器实现响应式状态管理,确保用户操作与界面状态的实时同步。数据存储层面,本项目选用了ArkData框架中的PreferencesAPI,实现了用户密码的本地持久化存储。本项目通过异步编程模型(async/await),保证了数据操作的高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国医药制造业市场供需调研技术革新趋势及投资方向研究报告
- 2026农业机械设备销售市场现状供需分析产品质量投资评估报告
- 2024年12月主治医师考试呼吸内科间质性肺病康复临床思维训练题及答案
- 政治学科题目及解答呈现
- 2026体育特色小镇安全设施配套建设标准与投资回报报告
- 2026食品添加剂行业市场动态供需关系及商业模式规划报告
- 2026中国新能源汽车动力电池管理系统行业市场趋势深度解析及投资前景和行业前景研究报告
- 2026中国康复医疗中心设备配置标准与运营效益提升策略报告
- 2026全面调研医疗影像行业市场现状深度研究报告
- 2026全球叶黄素酯技术创新路线及产业化进程深度研究报告
- 2026年出入境辅警理论考试试卷(含答案)
- 2026江苏徐州市市级机关印刷厂有限公司招聘工作人员2人笔试题库附答案详解(基础题)
- 2025年教师选调教育综合知识真题及答案
- 2025-2030年智能农业灌溉系统行业跨境出海战略分析研究报告
- 第一轮-【黄磷企业检查表】-检查表
- 电动汽车动力性能计算表
- 乔木支撑专项施工方案(3篇)
- 数字化解决方案设计师职业资格认定考试复习题库(附答案)
- 商务数据分析师知识考试复习题库(附答案)
- 2026中国电子签名法律效力与行业发展报告
- 脑梗塞中医护理要点与技巧
评论
0/150
提交评论