OpenHarmony开发者论坛

标题: OpenHarmony制作登陆页面 [打印本页]

作者: 俺也不知道叫啥名字好听    时间: 2024-12-29 20:11
标题: OpenHarmony制作登陆页面
[md]# OpenHarmony登陆页面制作

---

## 简介

---

登录页面是一个重要的界面,是用户访问系统或应用的重要入口。其主要功能是验证用户身份,确保只有授权的用户能够访问特定的系统资源。

## 页面内容

##### **· 用户标识输入框**

通常是一个文本输入框,用于用户输入用户名、邮箱或手机号等唯一标识自己身份的信息。这个输入框一般会有清晰的标签,如 “用户名” 或 “邮箱”,让用户明确应该输入的内容。

##### **· 密码输入框**

是一个特殊的文本输入框,用于输入用户密码。为了保护用户密码的安全性,密码输入框中的内容通常以加密的形式(如黑点或星号)显示,防止他人在旁边窥视到密码内容。

##### **· 提交按钮**

当用户输入完身份标识和密码后,通过点击提交按钮来触发登录验证流程。按钮上一般会有明确的文字,如 “登录” 或 “Sign In”,让用户清楚其功能。

##### **· 注册新用户链接**

如果系统允许新用户注册,会提供一个链接引导用户前往注册页面,方便新用户创建账号。

## 项目效果图

---

![屏幕截图2024-01-13172836.png](https://forums-obs.openharmony.c ... uqbquq6b6bjlqp9.png "屏幕截图 2024-01-13 172836.png")

![](file:///S:/%E5%BC%80%E6%BA%90%E6%8A%80%E6%9C%AF%E5%88%9B%E6%96%B0/%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2.png?lastModify=1735474092)

## 代码实现

---

```
import router from '@ohos.router'
@Entry@Component
struct Login {
  @State message: string = 'Hello World'

  build() {
   Column() {
     Button("注册/其他方式\n")
       .width("120vp")
       .height("30vp")
       .offset({ x: "111.42vp", y: "15.89vp" })
       .borderRadius("12vp")
       .backgroundColor("#f6f9ed")
       .backgroundImageSize(ImageSize.Auto)
       .opacity(1)
       .visibility(Visibility.Visible)
       .fontColor("#7785a0")
       .type(ButtonType.Normal)
       .stateEffect(true)
       .fontSize("16fp")
       .fontStyle(FontStyle.Normal)
       //进入登录副页面
       .onClick(() => {
         router.pushUrl({ url: 'pages/Home' })
       })
     Button("帮助")
       .width("50vp")
       .height("30vp")
       .offset({ x: "-137.33vp", y: "-12.96vp" })
       .borderRadius("12vp")
       .backgroundColor("#f6f9ed")
       .backgroundImageSize(ImageSize.Auto)
       .opacity(1)
       .visibility(Visibility.Visible)
       .fontColor("#7785a0")
       .type(ButtonType.Normal)
       .stateEffect(true)
       .fontSize("16fp")
       .fontStyle(FontStyle.Normal)
       //进入帮助页面
       .onClick(() => {
         router.pushUrl({ url: 'pages/Home' })
       })
     Image($r('app.media.Hello'))
       .width("200vp")
       .height("200vp")
       .offset({ x: "75.66vp", y: "-2.34vp" })
     Image($r('app.media.HelloLogin'))
       .width("317.29vp")
       .height("318.22vp")
       .offset({ x: "-5%", y: "-9%" })
     Column() {
       TextInput({ placeholder: "请输入密码" })
         .width("85%")
         .height("11%")
         .offset({ x: "0vp", y: "35%" })
         .type(InputType.Password)
       TextInput({ placeholder: "请输入账号" })
         .width("85%")
         .height("11%")
         .offset({ x: "0%", y: "5%" })
         .type(InputType.Normal)
       Button("一键进入城民之家")
         .width("300vp")
         .height("12%")
         .offset({ x: "0%", y: "40%" })
         .borderStyle(BorderStyle.Dotted)
         .borderWidth("0vp")
         .backgroundColor("#7785a0")
         .fontFamily("sans-serif")
         //进入主页面
         .onClick(() => {
           router.pushUrl({ url: 'pages/HomePage' })
         })
     }      
     .width("100%")
     .height("40%")
     .offset({ x: "0%", y: "-75%" })
     .borderStyle(BorderStyle.Solid)
     .borderRadius("25vp")
     .backgroundColor("#f6f9ed")
     .margin({ top: "500vp", left: "500vp", right: "500vp" })
     .justifyContent(FlexAlign.Start)
   }    
   .width("100%")
   .height("100%")
   .backgroundColor("#c3daed")
   .backgroundImageSize(ImageSize.Cover)
  }
}
```
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5