首页 > 其他分享 >鸿蒙开发进阶(HarmonyOS )账号密码自动填充

鸿蒙开发进阶(HarmonyOS )账号密码自动填充

时间:2024-11-08 22:20:51浏览次数:7  
标签:进阶 err width 100% value HarmonyOS 密码 账号密码 string

 鸿蒙NEXT开发实战往期必看文章:

一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!

“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)

HarmonyOS NEXT应用开发案例实践总结合(持续更新......)

HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)


密码保险箱可以在登录或修改密码时,自动填充已保存的用户名和密码。

触发条件及注意事项:

  • 已设置锁屏密码并且开启密码保险箱自动保存和填入账号和密码开关。
  • 界面中必须同时存在type为InputType.USER_NAME(表示用户名输入框)和InputType.password(表示普通密码输入框)的TextInput输入框组件。
  • TextInput组件的enableAutoFill属性的值为true(默认true)。
  • 密码保险箱中已保存过当前应用的用户名和密码。
  • 用户在界面中首次点击用户名输入框或密码输入框时触发自动填充弹窗。

登录

示例代码如下:

import router from '@ohos.router';

@Entry
@Component
struct LoginPage {
  @State ReserveAccount: string = '';
  @State ReservePassword: string = '';
  private length: number = 0;

  onBackPress() {
    router.back();
    return true;
  }

  build() {
    Column() {
      Text("账户登录")
        .fontSize(24)
        .fontColor('#000000')
        .fontWeight(FontWeight.Medium)
        .textAlign(TextAlign.Start)
        .width('100%')
        .margin({ top: 18 })

      TextInput({ placeholder: '用户名' })
        .opacity(0.6)
        .type(InputType.USER_NAME)
        .placeholderColor(0x182431)
        .width('100%')
        .placeholderFont({ size: 16, weight: FontWeight.Regular })
        .margin({ top: 32, bottom: 8 })
        .onChange((value: string) => {
          this.ReserveAccount = value;
          this.length = value.length;
        })
        .caretPosition(this.length)

      TextInput({ placeholder: '密码' })
        .type(InputType.Password)
        .placeholderColor(0x182431)
        .width('100%')
        .opacity(0.6)
        .showPasswordIcon(true)
        .placeholderFont({ size: 16, weight: FontWeight.Regular })
        .onChange((value: string) => {
          this.ReservePassword = value;
        })
        .margin({ bottom: 36 })

      Button('登录', { type: ButtonType.Capsule, stateEffect: false })
        .borderRadius(20)
        .width('100%')
        .height(40)
        .enabled((this.ReserveAccount !== '') && (this.ReservePassword !== ''))
        .onClick(() => {
          router.pushUrl({
            url: 'pages/Index', //此处pages/Index为跳转界面地址,请自行修改
            params: {
              src: '账户登录'
            }
          }, (err) => {
            if (err) {
              console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);
              return;
            }
            console.info('Invoke pushUrl succeeded.');
          })
        })
    }
    .padding({ left: 24, right: 24 })
    .height('100%')
    .width('100%')
  }
}

修改密码

示例代码如下:

import router from '@ohos.router';

@Entry
@Component
struct RegisterPage {
  @State ReserveAccount: string = '';
  @State ReservePassword: string = '';
  @State enAbleAutoFill: boolean = true;
  private length: number = 0;

  onBackPress() {
    this.enAbleAutoFill = false;
    router.back();
    return true;
  }

  aboutToAppear() {
  }

  build() {
    Column() {
      Text('修改密码')
        .fontSize(24)
        .fontColor('#000000')
        .fontWeight(FontWeight.Medium)
        .textAlign(TextAlign.Center)
        .width('100%')
        .margin({ top: 18})

      TextInput({ placeholder: '用户名' })
        .opacity(0.6)
        .type(InputType.USER_NAME)
        .placeholderColor(0x182431)
        .width('100%')
        .placeholderFont({ size: 16, weight: FontWeight.Regular })
        .margin({ top: 32, bottom: 8 })
        .onChange((value: string) => {
          this.ReserveAccount = value;
          this.length = value.length;
        })
        .caretPosition(this.length)

      TextInput({ placeholder: '密码' })
        .type(InputType.Password)
        .placeholderColor(0x182431)
        .width('100%')
        .opacity(0.6)
        .showPasswordIcon(true)
        .placeholderFont({ size: 16, weight: FontWeight.Regular })
        .onChange((value: string) => {
          this.ReservePassword = value;
        })
        .margin({ bottom: 12 })

      TextInput({ placeholder: '新密码' })
        .enableAutoFill(this.enAbleAutoFill)
        .type(InputType.NEW_PASSWORD)
        .passwordRules('begin:[lower],special:[yes],len:[maxlen:32,minlen:12]')
        .placeholderColor(0x182431)
        .width('100%')
        .opacity(0.6)
        .showPasswordIcon(true)
        .placeholderFont({ size: 16, weight: FontWeight.Regular })
        .onChange((value: string) => {
          this.ReservePassword = value;
        })
        .margin({ bottom: 36 })

      Button('页面跳转', { type: ButtonType.Capsule, stateEffect: false })
        .borderRadius(20)
        .width('80%')
        .height(40)
        .margin({ top: 24 })
        .enabled((this.ReserveAccount !== '') && (this.ReservePassword !== ''))
        .onClick(() => {
          router.pushUrl({
            url: 'pages/Index', //此处pages/Index为跳转界面地址,请自行修改
            params: {
              src: '修改密码'
            }
          }, (err) => {
            if (err) {
              console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);
              return;
            }
          })
        })

      Button('页面跳转(跳转前关闭autofill)', { type: ButtonType.Capsule, stateEffect: false })
        .borderRadius(20)
        .width('80%')
        .height(40)
        .margin({ top: 24 })
        .enabled((this.ReserveAccount !== '') && (this.ReservePassword !== ''))
        .onClick(() => {
          this.enAbleAutoFill = false;
          router.pushUrl({
            url: 'pages/Index', //此处pages/Index为跳转界面地址,请自行修改
            params: {
              src: '修改密码'
            }
          }, (err) => {
            if (err) {
              console.error(`Invoke pushUrl failed, code is ${err.code}, message is ${err.message}`);
              return;
            }
          })
        })
    }
  }
}

标签:进阶,err,width,100%,value,HarmonyOS,密码,账号密码,string
From: https://blog.csdn.net/m0_67143533/article/details/143628124

相关文章

  • 鸿蒙开发进阶(HarmonyOS)录像实现方案(ArkTS)
     鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)当前示......
  • 鸿蒙开发进阶(OpenHarmony)DAC模拟信号
    鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)功能简介......
  • 鸿蒙开发进阶(HarmonyOS)原生能力设备唯一ID实践
      鸿蒙NEXT开发实战往期必看文章:一分钟了解”纯血版!鸿蒙HarmonyOSNext应用开发!“非常详细的”鸿蒙HarmonyOSNext应用开发学习路线!(从零基础入门到精通)HarmonyOSNEXT应用开发案例实践总结合(持续更新......)HarmonyOSNEXT应用开发性能优化实践总结(持续更新......)场景......
  • 向量数据库 PieCloudVector 进阶系列丨打造以 LLM 为基础的聊天机器人
    本系列前两篇文章深入探讨了PieCloudVector在图片和音频数据上的应用之后,本文将聚焦于文本数据,探索PieCloudVector对于文本数据的向量化处理、存储以及检索,并最终结合LLM打造聊天机器人的全流程。在自然语言处理任务中涉及到大量对文本数据的处理、分析和理解,而向量数据库......
  • 【C++进阶】智能指针的使用及原理(1)
    1.智能指针的使用场景分析下面程序中我们可以看到,new了以后,我们也delete了,但是因为抛异常导,后面的delete没有得到执行,所以就内存泄漏了,所以我们需要new以后捕获异常,捕获到异常后delete内存,再把异常抛出,但是因为new本身也可能抛异常,连续的两个new和下面的Divide都可能会抛异......
  • 【模块一】kubernetes容器编排进阶实战之k8s基础概念
    kubernetes基本介绍kubernetes组件简介   -master:       主人,并不部署服务,而是管理salve节点。      后期更名为:controllplane,控制面板。         etcd:      2379(客户端通信)、2380(集群内部通信)         ......
  • 【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来
    文章目录前言一、HarmonyOSNEXT特点与升级二、全面突破操作系统核心技术三、鸿蒙生态全面守护用户隐私四、鸿蒙生态的崛起与开发者机遇五、全新鸿蒙生态引领数字化未来小结前言鸿蒙系统不断发展,有与安卓、iOS形成三足鼎立之势,且其在智能手机、智能穿戴、车载、......
  • 大模型(LLMs)学习笔记——进阶知识
    一.生成式大模型简介1.什么是生成式大模型前排提示,文末有大模型AGI-CSDN独家资料包哦!生成式大模型(一般简称大模型LLMs)是指能用于创作新内容,例如文本、图片、音频以及视频的一类深度学习模型。相比普通深度学习模型,主要有两点不同:模型参数量更大,参数量都在Billion......
  • 第三十四章 Vue路由进阶之声明式导航(导航高亮)
    目录一、导航高亮1.1.基于语法1.2.主要代码 二、声明式导航的两个类名2.1.声明式导航类名匹配方式2.2.声明式导航类名样式自定义 ​2.3.核心代码一、导航高亮1.1.基于语法在Vue中通过VueRouter插件,我们可以非常简单的实现实现导航高亮效果VueRouter提......
  • 36套Web前端全栈Vue3项目实战P7架构-入门篇+项目篇+进阶篇+架构篇
    36套Web前端全栈Vue3项目实战P7架构-入门篇+项目篇+进阶篇+架构篇36套eb前端全栈Vue3项目实战-入门篇+项目篇+进阶篇+架构篇,P7前端架构,高薪面试,Vue3源码剖析视频课程-技术栈-TypeScript+Vute+ElementPlus+Koa2+Node.js+Pinia+EChart4.0+Uni-App+React18+Flutter+Web3D+Vant+UI,项......