HarmonyOS开发之ArkTS利用:用户登录页面应用

农民  金牌会员 | 2024-6-26 10:56:12 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 820|帖子 820|积分 2460

目录

目录
前言
关于HarmonyOS
情况准备
新建项目
设计用户登录页面
1. 布局设计
2. 编写ArkTS代码
运行和测试
结束语


前言

   随着HarmonyOS(鸿蒙操作体系)的不断发展,越来越多的开发者开始投入到这个全新的生态体系中,而ArkTS(Adaptive Runtime for TypeScript)作为HarmonyOS的声明式UI编程语言,为开发者提供了高效、简洁的开发体验,尤其是对于前端开发者入手鸿蒙OS开发来说更是如鱼得水。那么本文就来介绍怎样利用ArkTS,这里以创建一个简单的用户登录页面应用来做具体分享。
  关于HarmonyOS

关于HarmonyOS的基本内容,HarmonyOS(鸿蒙操作体系)是华为公司推出的一种分布式操作体系,它被设计为一种全场景、全连接的操作体系,旨在实如今各种装备之间的无缝协同和共享,包罗智能手机、平板电脑、智能穿戴、智能家居、车载体系等。HarmonyOS的目标是构建一个同一的、开放的、全场景的操作体系生态体系。也是我们的国光操作体系,值得保举!
情况准备

在开始之前,请确保已经安装了DevEco Studio(华为开发者联盟提供的官方IDE)以及HarmonyOS SDK,与此同时,还需要对ArkTS的基本语法和组件有肯定的熟悉和了解,如许才能更好的快速入手体验。
新建项目

接下来就是直接去做创建项目的操作,上面假如把开发情况安装完毕之后,就可以直接创建项目了,大概步调如下所示:

  • 打开DevEco Studio,选择“Create New Project”;
  • 然后在项目模板中选择“Empty Feature Ability (ArkTS)”;
  • 填写项目信息,比如项目名称、保存位置等,这里就不再过多介绍,具体以现实情况填写即可,然后点击“Finish”即可。
设计用户登录页面

创建新的项目之后,先要根据设计的登录页面来开发,这里着重分享一下用户登录页面的设计的内容。具体步调如下所示:
1. 布局设计

在新建项目的resources/base/layout目录下创建一个新的XML布局文件,比如login_layout.xml,然后在这个文件中,可以利用ArkUI提供的组件来设计登录页面的布局,利用TextField组件来输入用户名和暗码,利用Button组件来提交登录哀求等设置。
2. 编写ArkTS代码

然后在对应的.ets文件中(通常是与布局文件同名的.ets文件),可以利用ArkTS来编写页面的逻辑代码。以下是一个简单的示例,具体如下所示:
  1. # ArkTS页面源码
  2. import router from '@ohos.router'
  3. import prompt from '@ohos.prompt'
  4. import promptAction from '@ohos.promptAction'
  5. @Entry
  6. @Component
  7. struct LoginPage {
  8.   @State password: string = ''
  9.   @State username: string = ''
  10.   @State phone: string = ''
  11.   build() {
  12.     Column() {
  13.       Text("登录")
  14.         .fontSize(50)
  15.         .fontWeight(FontWeight.Bold).margin({
  16.         bottom: 60
  17.       })
  18.       Row() {
  19.         Text("用户名")
  20.           .fontSize(18)
  21.           .fontWeight(FontWeight.Bold)
  22.       }.width("100%")
  23.       Row() {
  24.         Image($r("app.media.name")).width(30)
  25.         TextInput({
  26.           placeholder: "请输入用户名"
  27.         }).width(300).onChange((val: string) => {
  28.           this.username = val
  29.         })
  30.       }.margin({
  31.         bottom: 8,
  32.         top: 8
  33.       }).width("100%")
  34.       Divider().strokeWidth(4)
  35.       Row() {
  36.         Text("密码")
  37.           .fontSize(18)
  38.           .fontWeight(FontWeight.Bold).margin({
  39.           bottom: 8,
  40.           top: 8
  41.         })
  42.       }.width("100%")
  43.       Row() {
  44.         Image($r("app.media.password")).width(30)
  45.         TextInput({
  46.           placeholder: "请输入密码"
  47.         }).width(300).onChange((val: string) => {
  48.           this.password = val
  49.         }).type(InputType.Password)
  50.       }.width("100%")
  51.       Divider().strokeWidth(4)
  52.       Row() {
  53.         Blank()
  54.         Text("忘记密码?")
  55.           .fontSize(18)
  56.           .fontWeight(FontWeight.Bold)
  57.       }.width("100%")
  58.       Button("登录").width("90%").height(60).backgroundColor(Color.Orange).onClick(() => {
  59.         if (this.username == "admin" && this.password == "admin") {
  60.           router.replaceUrl({
  61.             url: "page/homepage",
  62.             params: {
  63.               name: this.username
  64.             }
  65.           })
  66.         }
  67.         else {
  68.           promptAction.showToast({
  69.             message:"密码或用户名错误,请重新输入"
  70.           })
  71.         }
  72.       }).margin({
  73.         top: 30,
  74.       })
  75.       Row() {
  76.         Button('第三方登录')
  77.           .width("140vp")
  78.           .height("80vp")
  79.           .fontSize(20)
  80.           .margin({
  81.             bottom: 40,
  82.             top: 60,
  83.             right: 20
  84.           })
  85.         Button('立即注册')
  86.           .width("140vp")
  87.           .height("80vp")
  88.           .fontSize(20)
  89.           .margin({
  90.             bottom: 40,
  91.             top: 60,
  92.           })
  93.       }
  94.       Image($r("app.media.logo")).width(80)
  95.     }
  96.     .width('100%')
  97.     .height('100%')
  98.     .justifyContent(FlexAlign.Center)
  99.     .alignItems(HorizontalAlign.Center)
  100.     .padding({
  101.       left: 20,
  102.       right: 20
  103.     })
  104.   }
  105. }
复制代码
  1. 上面的登录页面实现之后,运行之后,具体效果如下所示:
复制代码


运行和测试

在DevEco Studio中点击运行按钮(或利用快捷键),将应用摆设到模拟器或真机上进行测试。在登录页面中输入用户名和暗码,然后点击“登录”按钮,检察控制台输出以验证代码是否按预期工作。到此为止,整个开发流程全部结束,本篇文章内容也要到此结束。
结束语

通过本文内容,介绍了怎样利用ArkTS来创建一个简单的用户登录页面应用,通过设计布局、编写ArkTS代码和运行测试等步调,你可以快速掌握ArkTS的基本用法并开发出具有交互性的HarmonyOS应用。需要阐明的是本文示例代码是一个较为简单的 HarmonyOS 应用程序示例,但是涵盖了常见的 UI 布局、状态管理、事件处理和导航等内容,是一个比较全面的入门案例,你也可以在这个示例代码中做自己的修改。我觉得理解这些概念对于开发更复杂的 HarmonyOS 应用程序是很有资助的,盼望这篇文章对你有所资助!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农民

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表