【鸿蒙开发】05 登录Demo解析

文章目录

  • 一、功能介绍

在鸿蒙开发中,一个完善的登录功能是许多应用程序的基础需求。本文将详细介绍一个鸿蒙 App 登录 Demo,包括其功能介绍、代码解析以及代码 demo 的下载地址。

本文初始代码从华为开发者网站下载,根据该Demo进行内容调整。

一、功能介绍

这个鸿蒙 App 登录 Demo 实现了以下主要功能:

  • 用户输入验证
    对用户输入的用户名和密码进行基本的格式验证,确保输入的内容符合要求。例如,检查用户名是否为空、密码长度是否在合理范围内(最少不能低于6位)等。

    具体的验证逻辑代码路径:entry/src/main/ets/common/utils/CommonUtils.ets:66
    在这里插入图片描述

  • 登录逻辑处理
    当用户点击登录按钮时,系统会将用户输入的用户名和密码发送到模拟的服务器端(在本 Demo 中通常是模拟的接口或本地数据存储)进行验证。如果验证通过,则跳转到主页面或其他成功页面;如果验证失败,则显示相应的错误提示信息。
    在这里插入图片描述在这里插入图片描述

  • 错误提示
    在用户输入错误或登录失败时,清晰地显示错误信息,以便用户了解问题所在并进行修正。例如,“用户名不能为空”、“密码错误” 等提示。

  • 界面友好
    具有简洁明了的登录界面设计,易于用户操作。同时,支持不同屏幕尺寸和分辨率的设备,确保在各种鸿蒙设备上都能有良好的显示效果。

二、代码解析

以下是对登录 Demo 主要代码部分的解析:

界面布局:
类地址:entry/src/main/ets/pages/LoginPage.ets:
定义了登录界面的各个组件,如输入框、按钮、提示标签等。通过设置组件的属性,可以调整它们的外观和行为。例如:

@Entry
@Component
struct LoginPage {@StorageProp('currentDeviceSize') currentDeviceSize: string = CommonConstants.SM;onPageShow() {MultipleDevicesUtils.register();}build() {GridRow({columns: {sm: StyleConstants.COLUMNS_SM,md: StyleConstants.COLUMNS_MD,lg: StyleConstants.COLUMNS_LG},gutter: {x: StyleConstants.GRID_GUTTER}}) {GridCol({span: {sm: StyleConstants.SPAN_SM,md: StyleConstants.SPAN_MD,lg: StyleConstants.SPAN_LG}, offset: {md: StyleConstants.OFFSET_MD,lg: StyleConstants.OFFSET_LG}}) {Column() {// Title componentLoginTitle()// Bottom componentLoginBottom()}}}.backgroundColor($r('app.color.background'))}
}

在这个布局文件中,我们有两个TextField用于输入用户名和密码,一个Button作为登录按钮,以及一个Text用于显示错误信息。

首先,在AbilitySlice(鸿蒙应用的页面类)中,获取界面布局中的各个组件,并为登录按钮设置点击事件监听器。

 Button($r('app.string.login')).id(CommonConstants.LOGIN_BUTTON_ID).width(StyleConstants.FULL_PARENT).height($r('app.float.login_button_height')).fontSize($r('app.float.normal_text_size')).fontWeight(FontWeight.Medium).backgroundColor($r('app.color.login_button_color')).margin({top: $r('app.float.login_button_top'),bottom: $r('app.float.login_button_bottom')}).onClick(() => {CommonUtils.loginArkTS(this.account, this.password);})

在handleLogin方法中,获取用户输入的用户名和密码,进行简单的输入验证。如果验证通过,模拟跳转到主页面;如果验证失败,显示相应的错误信息。

数据存储或模拟服务器交互部分(可选):
在实际应用中,可以通过与服务器进行网络交互来验证用户的登录信息。或者,如果是离线应用,可以使用本地数据库或文件存储来验证用户信息。在这个 Demo 中,为了简单起见,只是使用硬编码的用户名和密码进行模拟验证。

三、代码 Demo 下载地址

你可以在以下地址下载这个鸿蒙 App 登录 Demo 的完整代码:

https://download.csdn.net/download/qq_15062089/89824797

通过这个登录 Demo,你可以快速了解鸿蒙应用中登录功能的实现方式,并根据自己的需求进行扩展和定制。希望本文对你在鸿蒙开发中的登录功能实现有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/436207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机之数据提取篇

一、无人机平台与传感器 无人机是进行数据采集的基础设施,其稳定性、可靠性、灵活性和负载能力直接影响到数据采集的效果。根据实际需求,需选择适合的无人机类型,如固定翼无人机适合大范围、长时间的数据采集,而多旋翼无人机则更适…

windows系统下Telnet工具的安装步骤

通过控制面板启用Telnet客户端 点击“确定”按钮,按照系统提示完成安装。 打开cmd,输入telnet就可以了

影刀RPA实战:Excel拆分与合并工作表

1.影刀操作excel的优势 Excel,大家都不陌生,它是微软公司推出的一款电子表格软件,它是 Microsoft Office 套件的一部分。Excel 以其强大的数据处理、分析和可视化功能而闻名,广泛应用于商业、教育、科研等领域。可以说&#xff0…

基于Apache和Tomcat的负载均衡实验报告

说明:本实验为浙江科技大学软件工程本科专业课程《软件体系结构》的实验报告。 五、总结 负载均衡的基础是集群,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同的硬件构成的计算机。负载…

【网络安全】-访问控制-burp(1~6)

文章目录 前言   1.Lab: Unprotected admin functionality  2.Lab: Unprotected admin functionality with unpredictable URL   3.Lab: User role controlled by request parameter   4.Lab:User role can be modified in user profile  5.Lab: User ID controlled by…

建筑中的文化表达与地方特色:演绎地域之魂

在浩瀚的城市风貌中,每一座建筑都是文化的载体,无声地讲述着地域的故事与精神。建筑不仅需要满足功能需求,更应成为文化传承与创新的舞台。本文旨在深度剖析建筑设计如何在尊重与弘扬地方文化的基础上,巧妙融合现代元素&#xff0…

CSS文本格式化

通过 CSS 中的文本属性您可以像操作 Word 文档那样定义网页中文本的字符间距、对齐方式、缩进等等,CSS 中常用的文本属性如下所示: text-align:设置文本的水平对齐方式;text-decoration:设置文本的装饰;te…

PCL 索引空间采样

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 索引空间采样 2.1.2 可视化原始点云和下采样后的点云 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总&#xf…

XSS | XSS 常用语句以及绕过思路

关注这个漏洞的其他相关笔记&#xff1a;XSS 漏洞 - 学习手册-CSDN博客 0x01&#xff1a;干货 - XSS 测试常用标签语句 0x0101&#xff1a;<a> 标签 <!-- 点击链接触发 - JavaScript 伪协议 --><a hrefjavascript:console.log(1)>XSS1</a> <!-- 字…

Java | Leetcode Java题解之第448题找到所有数组中消失的数字

题目&#xff1a; 题解&#xff1a; class Solution {public List<Integer> findDisappearedNumbers(int[] nums) {int n nums.length;for (int num : nums) {int x (num - 1) % n;nums[x] n;}List<Integer> ret new ArrayList<Integer>();for (int i …

易天智能eHR CreateUser 任意用户添加漏洞

漏洞描述 易天智能eHR管理平台 /BaseManage/UserAPI/CreateUser 接口存在任意用户添加漏洞&#xff0c;未经身份验证的远程攻击者可以利用此漏洞添加任意管理员用户&#xff0c;导致攻击者可直接管理后台&#xff0c;造成信息泄露&#xff0c;使系统处于极不安全的状态。 漏洞…

zi2zi-chain: 中国书法字体图片生成和字体制作的一站式开发

在zi2zi-pytorch的基础上&#xff0c;做了进一步的修复和完善。本项目github对应网址为https://github.com/not-bald-owl/zi2zi-chain/tree/master。 修复部分为&#xff1a;针对预处理部分的函数弃用、生僻字无法生成、训练和推理部分单卡支持改为多卡并行、以及扩展从本地的…

初识Linux · 进程等待

目录 前言&#xff1a; 进程等待是什么 为什么需要进程等待 进程等待都在做什么 前言&#xff1a; 通过上文的学习&#xff0c;我们了解了进程终止&#xff0c;知道终止是在干什么&#xff0c;终止的三种情况&#xff0c;以及有了退出码&#xff0c;错误码的概念&#xff…

基于Node.js+Express+MySQL+VUE实现的计算机毕业设计共享单车管理网站

单车信息选择骑行 骑行状态留言公告/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序 目录 功能图 界面展示 开发目标 开发背景意义 开发意义‌ 开发目的 项目概述‌ 技术选型与理由‌ 系统设计与功能实现‌ 项目可执行性分析 ‌系统架构需求‌ ‌性能需…

leetcode力扣刷题系列——【座位预约管理系统】

题目 请你设计一个管理 n 个座位预约的系统&#xff0c;座位编号从 1 到 n 。 请你实现 SeatManager 类&#xff1a; SeatManager(int n) 初始化一个 SeatManager 对象&#xff0c;它管理从 1 到 n 编号的 n 个座位。所有座位初始都是可预约的。 int reserve() 返回可以预约座…

解决 Android WebView 无法加载 H5 页面常见问题的实用指南

目录 1. WebView 简介 2. 常见问题 3. 网络权限设置 4. 启用 JavaScript 5. DOM Storage 的重要性 6. 处理 HTTPS 问题 7. 设置 WebViewClient 8. 调试工具 9. 其他调试技巧 10. 结论 相关推荐 1. WebView 简介 Android WebView 是一种视图组件&#xff0c;使得 And…

【STM32】 TCP/IP通信协议(1)--LwIP介绍

一、前言 TCP/IP是干啥的&#xff1f;它跟SPI、IIC、CAN有什么区别&#xff1f;它如何实现stm32的通讯&#xff1f;如何去配置&#xff1f;为了搞懂这些问题&#xff0c;查询资料可解决如下疑问&#xff1a; 1.为什么要用以太网通信? 以太网(Ethernet) 是指遵守 IEEE 802.3 …

16.安卓逆向-frida基础-HOOK类方法2

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要盲目相信。 工…

在线毫米(mm)到像素(px)换算器

具体请前往&#xff1a;在线mm转px工具--将实际长度毫米(Millimeters)单位换算为像素(Pixels)单位

CAN总线的错误类型

前言 CAN总线的错误类型主要包括&#xff1a;位错误、填充错误、格式错误、ACK错误和CRC错误。这里一定要做好CAN总线的错误类型、错误帧类型、节点状态之间的区别。 错误类型是帧传输出错的原因类型&#xff1b;错误帧类型&#xff08;主动错误帧、被动错误帧&#xff09;是帧…