短信验证码及倒计时实现

1.背景

倒计时的效果在网站或其他平台看到的很多了吧,今天就让我们来看看在OpenHarmony中如何实现它吧!

2.效果预览

视频效果演示

https://www.bilibili.com/video/BV1184y1z7SU/

开发板:DAYU200

IDE:DevEco Studio 3.0 Release Build Version: 3.0.0.993,

API:9

3.思路:

1.获取Input框输入值,判断手机号码是否正确,不正确的话,弹窗提示。
2.设置按钮倒计时,设置默认sec=60,点击后开始计数,每秒减1。
3.封装倒计时函数,获取数字,设置定时器,如果倒计时为0,就停止计时。

好的,接下来我们看一下代码实现。

4.创建应用

5.删除原有代码

删除原有代码,导入图片资源,做好准备工作。

6.编写代码,实现功能

1.布局拆分

首先我们来看一下布局,然后将布局分解成它的各个基础元素:

  • 识别出它的行和列。
  • 这个布局是否包含网格布局?
  • 是否有重叠的元素?
  • 界面是否需要选项卡?
  • 留意需要对齐、内间距、或者边界的区域。

首先,识别出稍大的元素。在这个例子中,一个重叠图像,两个行区域,和一个文本区域。

2.实现堆叠布局

首先是背景图片,我们采用堆叠布局,用Stack来展示背景并铺满整个页面。

    Stack({ alignContent: Alignment.Center }) {Image($r('app.media.img')).width('100%').width('100%')}

3.实现文本展示

第一行为一个文本展示,我们用Text来展示。

Text("短信验证码倒计时").fontSize(36)

4.实现输入框

TextInput({ placeholder: "请输入手机号" }) // 无输入时的提示文本(可选)。.type(InputType.Normal) // 输入框类型.placeholderColor($r("app.color.fgLevel1")) // 设置placeholder颜色.placeholderFont({size: 20,weight: FontWeight.Normal,style: FontStyle.Normal}) // 设置placeholder文本样式.enterKeyType(EnterKeyType.Next) // 设置输入法回车键类型.caretColor($r("app.color.info")) // 设置输入框光标颜色.maxLength(20) // 设置文本的最大输入字符数.onChange((value: string) => {console.log("输入的数据是" + value) // 输入发生变化时,触发回调this.text = value;}).width(200).height(50).backgroundColor(Color.White)

5.实现短信验证码按钮

Button(this.flag ? `${this.sec}` + "s后重新获取" : "短信验证吗", { type: ButtonType.Normal }).width(150).height(50).backgroundColor($r("app.color.morandi2_alpha")).fontSize(18).fontColor($r("app.color.controlFocusFg_alpha")).borderRadius(10).onClick(() => {}})}

6.定时器的实现

private materOnClick() {var T = setInterval(() => {if (this.sec <= 0) {clearTimeout(T)} else {this.sec--}}, 1000)
}

7.签名及真机调试

将搭载OpenHarmony标准系统的开发板与电脑连接。

点击File> Project Structure… > Project>SigningConfigs界面勾选“Automatically generate signing”,等待自动签名完成即可,点击“OK”。如下图所示:

在编辑窗口右上角的工具栏,点击按钮运行。效果如下所示:

8.源码地址

坚果/smslogin (gitee.com)

9.总结

本文介绍了如何使用ArkUI框架,带大家完成短信验证登录,当然除了文中展示的办法,开发者还可以通过拓展其他相关的属性和方法,实现更多好玩的样例。

OpenHarmony短信验证码及倒计时实现相关推荐

  1. android自定义秒表,Android自定义Chronometer实现短信验证码秒表倒计时功能

    本文实例为大家分享了Chronometer实现倒计时功能,Android提供了实现按照秒计时的API,供大家参考,具体内容如下 一.自定义ChronometerView 继续自TextView 主要原 ...

  2. java发送短信验证码带倒计时

    分享一个完整的java发送短信验证码的完整实例,这是一个官方的使用demo,带有60秒倒计时功能. 效果: 我使用的是榛子云短信平台 , 官网地址:http://sms_developer.zhenz ...

  3. android 短信验证计时,Android自定义Chronometer实现短信验证码秒表倒计时功能

    本文实例为大家分享了chronometer实现倒计时功能,android提供了实现按照秒计时的api,供大家参考,具体内容如下 一.自定义chronometerview 继续自textview 主要原 ...

  4. axure 倒计时_Axure教程:短信验证码实现倒计时

    编辑导读:本文跟大家分享,如何用Axure实现短信验证码倒计时效果,作者从预览图,到所需基本原件,再到操作步骤都一一展开了分析,并对过程中需要注意的问题进行了介绍,希望对你有所启发. 这个是新用户注册 ...

  5. 一个发送短信验证码 然后倒计时实例

    如图所示: 点击按钮后,开始倒计时. 下面是代码: (js代码) <script type="text/javascript">var i = 60;function ...

  6. 短信验证码60倒计时

    export default {data () {return {btnColor: '#ea5504',content: '发送验证码', // 按钮里显示的内容totalTime: 90, // ...

  7. JS——实现短信验证码的倒计时功能(没有验证码,只有倒计时)

    1.功能描述 当用户想要获取验证码时,就点击 免费获取验证码 ,然后开始倒计时,倒计时期间按钮文字为剩余时间x秒,且不可按状态,倒计时结束后,按钮更改为点击重新发送. 2.分析 必须用到定时器.按钮点 ...

  8. 安卓CountDownTimer实现全民夺宝抢购倒计时和短信验证码倒计时

    在sina里看到了什么全民夺宝的链接,然后忍不住1元的诱惑被坑了10多块,什么都没有抽到,但是还是有人抽到了不知道是不是坑爹的,然后也就动手做一下倒计时的功能. 先看全民夺宝: 说起这个功能是不是感觉 ...

  9. java+vue3实现生成、验证图形验证码,和手机短信验证码

    一.效果图 二.实现生成图形验证码.校验验证码 1.实现后端接口 ①控制层代码 /*** 生成图片验证码* time用于保证每次可以刷新图片验证码*/@GetMapping("authCod ...

  10. 美多商城之短信验证码

    美多商城之短信验证码 1.短信验证码逻辑分析 2.容联云通讯短信平台 3.短信验证码后端逻辑 4.短信验证码前端逻辑 5.补充注册时短信验证逻辑 6.避免频繁发送短信验证码 7.pipeline操作R ...

最新文章

  1. 大三Java后端暑期实习面经总结——Java容器篇
  2. linux文件描述符
  3. python里compile的作用_Python代码中compile()函数具有哪些功能呢?
  4. Mysql存储过程查询结果赋值到变量
  5. php mysql 导出到excel,php mysql数据导出到excel文件
  6. 活动目录(LiveFolder)
  7. Atitit 性能提升总结 流水线模式 FutureTask ForkJoinTask 1.1. 流水线工作方式pipeline 1 1.2. FutureTask模式使用异步 流水线 还有多
  8. echart 中国地图 带effectScatter和lines
  9. 一维卷积神经网络应用,二维卷积神经网络原理
  10. 企业纳税证明(社保完税证明)如何导出
  11. html抓取cpu温度,一种获取CPU温度的测试方法、系统及计算机存储介质与流程
  12. 固态硬盘装到服务器上影响寿命吗,谈谈SSD固态硬盘的寿命问题
  13. [POI2008]Mirror Trap
  14. Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-虚拟AT
  15. QQmm无处藏 2.1
  16. web压力測试-Web Bench
  17. springboot RabbitMQ整合出现Reply received after timeout 异常
  18. (生活小妙招系列二之:高血压篇)现在才明白,高血压的罪魁祸首不是盐,而是它!
  19. 近视手术?一个医学的阴谋?
  20. R语言修改下载安装包install.package的默认存储位置

热门文章

  1. 玉米社:网站打开慢,如何提升网站打开速度?
  2. c php embed,使用PHP Embed SAPI实现Opcodes查看器
  3. 【ESP32】 esp32 输入输出文件系统、编码
  4. 献给盲目追谁IT的管理者的话,转载:活着就是王道---- -一年
  5. 《Look More Than Once(LOMO):An Accurate Detector for Text of Arbitrary Shapes》论文笔记
  6. CSS特效--图像悬停效果
  7. 监督学习、无监督学习、强化学习的区别
  8. Python爬虫获取网易云歌单封面(带Cookie)
  9. 360系统急救箱用在服务器上,360系统急救箱打开失败的处理操作
  10. OpenGl L13深度测试