原生鸿蒙HarmonyOS-Chat聊天app应用|ArkTs/ArkUI聊天模板

xiaoyan2015 · · 29 次点击 · · 开始浏览    

## 项目简介 > [HarmonyOS-weChat](https://www.cnblogs.com/xiaoyan2017/p/18554593)是一款使用最新纯血鸿蒙`HarmonyOS Next5.0 API12`上使用`ArkUI`和`ArkTS`开发**聊天app应用**的实例。提供了包括聊天、通讯录、我、朋友圈等模块。 ![未标题-a.png](https://static.golangjob.cn/241124/3745171c367f61b106ad390a41df5042.png) HarmonyOS-Chat模仿了微信的界面和功能,实现了类似微信的消息UI布局、输入框光标处插入文字、emoji表情图片/GIF动图、图片预览、红包、长按语音面板等功能。 ![未标题-3.png](https://static.golangjob.cn/241124/7ab3ec9946d8c3c82cb4692be55846db.png) ![p1.gif](https://static.golangjob.cn/241124/7c2ad20cb826c3db2471fd5ca7f45cc0.gif) ![p3.gif](https://static.golangjob.cn/241124/0f8b83bec4dc68590bdbe1cdfbec5819.gif) ## 项目框架目录 HarmonyOS-Chat项目的框架结构是基于*DevEco Studio 5.0.3.906*编码工具构建。 ![360截图20241118123651702.png](https://static.golangjob.cn/241124/fabf98226716efff9d8530ee1d378bd4.png) ![p3-2.gif](https://static.golangjob.cn/241124/236678df53c401cc70939947af9dcc46.gif) ## 项目路由页面json ![1289798-20241119111326298-202389965.png](https://static.golangjob.cn/241124/d024619803773bd59a47b3e28bb02702.png) ## ArkUI自定义封装导航条 ![360截图20241120075707445.png](https://static.golangjob.cn/241124/4f5ef474fe1934d003079c0f92107351.png) 如何通过arkui实现一个多功能标题栏导航组件,感兴趣的可以去看看下面这篇分享文章。 [HarmonyOS NEXT 5.0自定义增强版导航栏组件|鸿蒙ArkUI自定义标题栏](https://www.cnblogs.com/xiaoyan2017/p/18517517) ## arkui实现登录功能|60s验证码倒计时 ![p0.gif](https://static.golangjob.cn/241124/4322649d894004b47ebefc005ecae66a.gif) ``` /** * 登录模板 * @author andy */ import { router, promptAction } from '@kit.ArkUI' @Entry @Component struct Login { @State name: string = '' @State pwd: string = '' // 提交 handleSubmit() { if(this.name === '' || this.pwd === '') { promptAction.showToast({ message: '账号或密码不能为空' }) }else { // 登录接口逻辑... promptAction.showToast({ message: '登录成功' }) setTimeout(() => { router.replaceUrl({ url: 'pages/Index' }) }, 2000) } } build() { Column() { Column({space: 10}) { Image('pages/assets/images/logo.png').height(50).width(50) Text('HarmonyOS-Chat').fontSize(18).fontColor('#0a59f7') } .margin({top: 50}) Column({space: 15}) { TextInput({placeholder: '请输入账号'}) .onChange((value) => { this.name = value }) TextInput({placeholder: '请输入密码'}).type(InputType.Password) .onChange((value) => { this.pwd = value }) Button('登录').height(45).width('100%') .linearGradient({ angle: 135, colors: [['#0a59f7', 0.1], ['#07c160', 1]] }) .onClick(() => { this.handleSubmit() }) } .margin({top: 30}) .width('80%') Row({space: 15}) { Text('忘记密码').fontSize(14).opacity(0.5) Text('注册账号').fontSize(14).opacity(0.5) .onClick(() => { router.pushUrl({url: 'pages/views/auth/Register'}) }) } .margin({top: 20}) } .height('100%') .width('100%') .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) } } ``` 实现60s倒计时功能。 ``` // 验证码参数 @State codeText: string = '获取验证码' @State disabled: boolean = false @State time: number = 60 // 获取验证码 handleVCode() { if(this.tel === '') { promptAction.showToast({ message: '请输入手机号' }) }else if(!checkMobile(this.tel)) { promptAction.showToast({ message: '手机号格式错误' }) }else { const timer = setInterval(() => { if(this.time > 0) { this.disabled = true this.codeText = `获取验证码(${this.time--})` }else { clearInterval(timer) this.codeText = '获取验证码' this.time = 5 this.disabled = false } }, 1000) } } ``` harmonyos-chat聊天室app项目涉及知识点很多,想要了解更多详细的介绍,可以去看看下面这篇分享文章。 [HarmonyOS-Chat聊天室|纯血鸿蒙Next5 api12聊天app|ArkUI仿微信](https://www.cnblogs.com/xiaoyan2017/p/18554593) 附上一个最新的Electron+vue3聊天Exe实例项目 [Vite5+Electron聊天室|electron31跨平台仿微信EXE客户端|vue3聊天程序](https://www.cnblogs.com/xiaoyan2017/p/18290962)

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

29 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传