【鸿蒙 HarmonyOS 4.0】登录流程

news2024/9/23 7:33:06

一、背景

登录功能在应用中是一个常用模块,此次使用 HarmonyOS 实现登录流程,包含页面呈现与网络请求。

二、页面呈现

三、实现流程

3.1、创建项目

构建一个ArkTS应用项目(Stage模型),今天创建流程可查看官网教程:文档中心

目录结构介绍:

3.2、添加静态资源

所需图片:背景图,土拨鼠图片

添加位置:entry > src > main > resources > base > media

备注:icon.png是初始图片,另外两个是新增加的图片资源

3.3、编写登录界面

在pages目录下新建LoginPage页面,用于编写登录界面

具体代码:

@Entry
@Component
struct LoginPage {
  @State tenant:string = ''
  @State account:string = ''
  @State password:string = ''

  build() {
    Column({space:10}){
      Image($r('app.media.Groundhog'))
        .width('100vp')
        .borderRadius(50)
        .margin({top:120})
      Text('欢迎登录土拨鼠')
        .fontColor(Color.Gray)
        .fontSize(20)
      Select([{value:'土拨鼠充电公司'},{value:'钢铁侠充电公司'}])
        .selected(0)
        .value('请选择租户')
        .font({size:16,weight:500})
        .fontColor('#182431')
        .selectedOptionFont({ size: 16, weight: 400 })
        .optionFont({ size: 16, weight: 400 })
        .onSelect((index: number) => {
          this.tenant = (index + 1).toString()
        })
      TextInput({
        placeholder:'请输入用户名'
      })
        .width(300)
        .onChange((val:string) => this.account = val)
      TextInput({
        placeholder:'请输入密码'
      })
        .width(300)
        .onChange((val:string) => this.password = val).type(InputType.Password)
      Button('登录')
        .width("90%")
        .backgroundColor('#0aa671')
      LoadingProgress()
        .color('#0aa671')
        .width(50)
        .height(50)
    }
    .width('100%')
    .height('100%')
    .backgroundImage($r('app.media.rect'))
  }
}

3.4、界面测试

3.4.1、方法一:Preview 预览

 Previewer 预览用于查看应用的UI界面效果,方便随时调整界面UI布局。只需打开需要预览的页面文件,在LoginPage.ets文件中,点击IDE右侧的 Previewer 即可看到预览效果。

3.4.2、方法二:模拟器运行

右上角选择设备,点击进入设备管理器

①如果没有模拟器需下载安装,可查看我前面写的此篇文章👉【鸿蒙 HarmonyOS 4.0】开发工具安装_安装鸿蒙ide-CSDN博客

②如果已经下载,点击启动设备。

③此时设备上已选中启动的设备,点击右上角的按钮,启动下项目

备注:

模拟器默认启动页面是Index,如果需要启动项目直接是LoginPage页面,需要在EntryAbility文件内windowStage.loadContent方法中修改启动路径,如下👇

最终,模拟器运行效果👇

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BUUCTF crypto做题记录(13)新手向

一、[MRCTF2020]vigenere 这是一道维吉尼亚密码,但由于不知道密钥,所以我们需要采用爆破的方式。Vigenere Solver | guballa.de 答案:flag{vigenere_crypto_crack_man} 二、[MRCTF2020]keyboard 之前做过一个类似的题目,用九宫格…

一文掌握:教务管理系统该如何设计?

hello,我是贝格前端工场,本期给大家分享教务管理系统的知识点,欢迎老铁们点赞、关注,如有需求可以私信我们。 一、什么是教务管理系统 教务管理系统是一种用于管理学校或教育机构的学生、课程和教学活动的软件系统。它提供了一种…

基于SpringBoot+Apache POI的前后端分离外卖项目-苍穹外卖(十九)

数据导出 1. 工作台1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.2.1 Controller层1.2.2 Service层接口1.2.3 Service层实现类1.2.4 Mapper层 1.3 功能测试 2. Apache POI2.1 介绍2.2 入门案例2.2.1 将数据写入Excel文件2.2.2 读取Excel文件中的数据 3. 导出运营数据Excel…

K8s+ArgoCD,低投入构建内部开发者平台

01 简介 许多人认为,要建立内部开发人员平台,就必须使用像 Spotify Backstage 这样的工具。其实未必,如果将 Kubernetes label 等更原生的方法与 Argo CD 等工具和 GitOps 原则相结合,也可以有效地为开发人员和平台团队提供自助服…

java spring 03 启动细节

启动类ClassPathXmlApplicationContext public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, Nullable ApplicationContext parent)throws BeansException {super(parent);setConfigLocations(configLocations);if (refresh) {refresh();}}其中…

护眼台灯怎么样选择?5款好用的护眼台灯推荐,完全凭实力说话!

随着护眼台灯用户增长,近年来护眼台灯检测不合格的的问题频频爆出,这种情况大多数都是来自于一些价格低廉、非专业缺乏技术积累的品牌厂家,长期使用存在很大风险。所以我们在选购护眼台灯的时候不能盲目根据销量或者价格就购买,需…

vue2+vite+@vitejs/plugin-vue2可以使用require引用图片资源

很多文章都说vite不能用require,vue3vite确实是这样的,但今天无意间发现vue2vite中是可以使用require引用资源的 vue3搭配vite一般使用的是vitejs/plugin-vue解析vue语法,而vue2使用的则是另一个插件vitejs/plugin-vue2插件解析vue语法 看下…

表单验证、属性绑定(一个属性根据另一个属性有无进行操作)

表单验证 一个属性根据另一个属性有无进行操作(属性绑定) 1、问题描述 ​ 需求:表单里面后两个属性需要根据前面一个属性进行有无判断。如果前面属性没有输入值,则不需要进行操作;如果前面属性有输入值,则…

胜出之道:NCDA设计大赛获奖作品解读与交互程序设计的优化策略

第12届大赛简介 - 未来设计师全国高校数字艺术设计大赛(NCDA)开始啦!未来设计师全国高校数字艺术设计大赛(NCDA)是由工信部人才交流中心主办,教育部中国高等教育学会认定,教育厅发文立项&#x…

RedisDesktopManager连接Ubuntu的Redis失败解决办法

配置redis 1.设置redis在后台服务,修改配置文件 默认情况下是 no ,修改为yes,可以后台服务 2、设置redis端口,默认端口是6379,可以根据自己的需要,找到/et/redis/redis.conf文件, 修改port 3、设置密码 配置文件中…

AI论文速读 | TimeXer:让 Transformer能够利用外部变量进行时间序列预测

题目: TimeXer: Empowering Transformers for Time Series Forecasting with Exogenous Variables 作者:Yuxuan Wang ; Haixu Wu(吴海旭) ; Jiaxiang Dong ; Yong Liu ; Yunzhong Qiu ; Haoran Zhang ; Jianmin Wang(…

会员营销中如何让会员主动完善信息?

会员主动完善信息,可以通过积分、优惠券、会员权益进行激励。 会员信息主要包括会员姓名、生日、地址、兴趣爱好等;需要让会员完善的信息要围绕营销目标和营销计划,不要过度收集会员信息。 在博阳会员管理系统中定义会员完善个人信息页&#…

Java面试题总结8:springboot

Spring Boot自动配置原理 importConfigurationSpring spi 自动配置类由各个starter提供,使用ConfigurationBean定义配置类,放到META-INF/spring.factories下 使用Spring spi扫描META-INF/Spring.factories下的配置类 如何理解Spring Boot中Starter …

STM 32 HAL库 UART 调试的问题

问题1:STM32G0 系列 DMA中断接收,应用层无法接收到数据 分析: Debug发现,最终没有进入串口中断函数 。 于是,检查Stm32CubeMX 的工程配置 两个串口的全局中断没有使能。 解决:勾选上图中红框部分&#x…

STM32CubeIDE基础学习-安装芯片固件支持包

STM32CubeIDE基础学习-添加芯片固件支持包 前言 前面的文章在安装STM32CubeIDE软件时没有安装这个芯片PACK包,如果工程没有这个固件支持包的话是无法正常使用的,随便安装一个和芯片对应系列的支持包就可以了。 这篇文章来记录一下新增PACK包的常用操作…

SUSE12系统破解root密码

SUSE12系统破解root密码 1、重启系统,重启时出现引导界面,按e 2、在启动 linux 的启动选项里加上 init/bin/bash,然后按 F10 启动,通过给内核传递 init/bin/bash 参数使得 OS 在运行 login 程序之前运行 bash,出现命令…

微服务知识03

1、ES搜索引擎,高性能的分布式搜索引擎,底层基于Lucene 主要用于应用程序中的搜索系统 日志收集 2、基础概念 3、流程 4、 5、下载中文分词器

微信小程序开发系列(十八)·wxml语法·声明和绑定数据

目录 1. 双大括号写法用法一:展示内容 步骤一:创建一个data对象 步骤二:双大括号写法的使用 步骤三:拓展 2. 双大括号写法用法二:绑定属性值 步骤一:给对象赋一个属性值 步骤二:双大括…

两天学会微服务网关Gateway-Gateway路由规则

锋哥原创的微服务网关Gateway视频教程: Gateway微服务网关视频教程(无废话版)_哔哩哔哩_bilibiliGateway微服务网关视频教程(无废话版)共计17条视频,包括:1_Gateway简介、2_Gateway工作原理、3…

行人实时动作识别

详细资料和代码请加微信:17324069443 一、项目介绍 基于PyTorchVideo的实时动作识别框架: 我们选择了yolov5作为目标检测器,而不是Faster R-CNN,它速度更快、更方便。 我们使用一个跟踪器(deepsort)来为不…