简介
用一个ArkTS编写的HarmonyOS原生聊天UI框架,提供了开箱即用的聊天对话组件。

接口和属性列表
接口列表
| 接口 | 参数 | 功能 |
|---|---|---|
| setTyping(isTyping) | isTyping:布尔值 | 显示/隐藏消息加载动画 |
| postMessage(msg,clearInput) | msg:[ChatMessage]类型 clearInput: boolean类型。 | 在对话界面中显示消息 指示展示消息时是否清空输入框内容,默认清除。 |
| submitUserInput(userIputText) | userIputText:string类型。 | 触发Chat组件用户发送消息事件 |
属性列表
| 属性 | 描述 |
|---|---|
| messages | 聊天消息列表,[IChatDataSource]类型。支持懒加载显示的数据源 |
| botAvatar | chatbot头像(可选)。Resource类型 |
| userAvatar | 我的头像(可选)。Resource类型 |
| title | 标题栏标题。string类型 |
| needTitleBar | 是否显示标题栏。boolean类型 |
| welcomeMessage | chatbot默认欢迎语。string类型 |
| botMessageBackgroundColor | chatbot消息的背景颜色。string类型 |
| botMessageTextColor | chatbot消息的文本颜色。string类型 |
| userMessageBackgroundColor | 用户消息的背景颜色。string类型 |
| userMessageTextColor | 用户消息的文本颜色。string类型 |
| messageFontSize | 消息文本的字体大小。number类型 |
| needBackButton | 是否显示顶部返回按钮。点击返回导航上一页。boolean类型 |
| needInputControl | 是否需要底部输入区域。 boolean类型 |
| InputControl | 底部输入区域,@BuilderParams类型。该区域可自定义为你自己的布局 |
| controller | 自定义输入控制器,自定义输入区时必填。[ChatController]类型 |
| backIcon | 返回按钮图标。Resource类型 |
| clearChatIcon | 清楚聊天按钮图标。Resource类型 |
| submitButtonText | 提交消息按钮文本。string类型 |
| inputTextPlaceHolder | 输入框提示文本。string类型 |
| inputTextPlaceHolderColor | 输入框提示文本的颜色。string类型 |
| inputTextColor | 输入文本的颜色。string类型 |
| needSubmitButton | 是否显示提交消息按钮。boolean类型 |
使用示例
这里演示简单的调用ChatUI组件
import { Chat, ChatRole, ChatMessage } from '@changwei/chatui'
@Entry
@Component
struct Index {
build() {
Row() {
Column() {
Chat({
title:'demo chatbot',
welcomeMessage: '我是你的测试bot',
onSendMessage: (ctl, message) = > {
//发送用户消息
ctl.postMessage(message)
//显示回复等待动画
ctl.setTyping(true)
//3秒后发送chatbot响应消息
setTimeout(() = > {
ctl.postMessage(new ChatMessage(ChatRole.Assistant, '这是一条测试回复'))
}, 3000)
}
})
}
}
.height('100%')
}
}
深度定制聊天UI。替换输入区域为你自己的输入组件,替换头像,文本颜色等。
import { Chat, ChatRole, ChatMessage } from '@changwei/chatui'
import { ChatController } from '@changwei/chatui'
import router from '@ohos.router';
@Entry
@Component
struct CustomInput {
@State userInput: string = ''
@State needBackButton: boolean = false
chatController = new ChatController()
build() {
Row() {
Column() {
Chat({
title: 'demo chatbot',
needTitleBar: true,
welcomeMessage: '我是你的测试bot',
botMessageBackgroundColor: Color.Brown,
botMessageTextColor: Color.White,
userMessageBackgroundColor: Color.Green,
userMessageTextColor: Color.White,
botAvatar:$r('app.media.chat'),
messageFontSize: 20,
userInput: this.userInput,
controller: this.chatController,
needBackButton:this.needBackButton,
onSendMessage: (ctl, message) = > {
//发送用户消息
ctl.postMessage(message)
this.userInput = ''
//显示回复等待动画
ctl.setTyping(true)
//3秒后发送chatbot响应消息
setTimeout(() = > {
ctl.postMessage(new ChatMessage(ChatRole.Assistant, '这是一条测试回复'),false)
}, 3000)
}
})
{
Row() {
Button() {
Image($r('app.media.app_icon'))
}
.backgroundColor('#')
.height('40')
.width('40')
.margin(5)
TextInput({
text: this.userInput
})
.enterKeyType(EnterKeyType.Send)
.fontColor(Color.White)
.backgroundColor(Color.Blue)
.width('80%')
.onChange((val) = > {
this.userInput = val
})
.onSubmit((ss) = > {
this.chatController.submitUserInput(this.userInput)
})
}
}
}
}
.height('100%')
}
aboutToAppear() {
const params = router.getParams(); // 获取传递过来的参数对象
if(params) {
this.needBackButton = params['needBackButton']
}
}
}
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
60文章
3074浏览量
46281 -
HarmonyOS
+关注
关注
80文章
2157浏览量
36461
发布评论请先 登录
相关推荐
热点推荐
鸿蒙OS开发实战:【ArkTS 实现MQTT协议(2)】
1. 协议传输通道仅为TCPSocket
2. 基于HarmonyOS SDK API 9开发
3. 开发语言:ArkTS,TypeScript
鸿蒙入门实战-ArkTS开发
声明式UI基本概念
应用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以声明式开发范式开发界面的语言。
声明式UI构建页面的过程,其实是组合组件的过程,声明式UI的思想,主要体现在
发表于 01-16 17:27
1月18号“纯鸿蒙”千帆启航,程序员预备!
4.0&next文档)其中内容包含:
《鸿蒙开发基础》
1.ArkTS语言
2.安装DevEco Studio
3.运用你的第一个ArkTS
发表于 01-16 22:13
鸿蒙这么大声势,为何迟迟看不见岗位?最新数据来了
基础》
ArkTS语言
安装DevEco Studio
运用你的第一个ArkTS应用
ArkUI声明式UI开发
.……
《鸿蒙
发表于 02-29 20:53
鸿蒙Flutter实战:05-使用第三方插件
# 鸿蒙Flutter 实战:使用第三方插件
在鸿蒙Flutter开发中,如果涉及到使用原生功能,就要使用插件。使用插件有两种方式,一种是自己编写原生
发表于 10-22 21:54
鸿蒙Flutter实战:06-使用ArkTs开发Flutter鸿蒙插件
# 使用 ArkTs 开发 Flutter 鸿蒙平台插件
本文讲述如何开发一个 Flutter 鸿蒙插件,如何实现 Flutter 与
发表于 10-22 21:56
鸿蒙Flutter实战:08-如何调试代码
# 鸿蒙Flutter实战:如何调试代码
## 1.环境搭建
参考文章[鸿蒙Flutter实战:01-搭建开发环境](https://g
发表于 10-23 16:29
HarmonyOS NEXT 应用开发练习:AI智能对话框
一、练习内容
在这个HarmonyOS NEXT原生应用DEMO中,我们将使用ArkTS开发语言创建一个功能更为丰富的AI智能对话框。这个对话框
发表于 01-03 11:29
HarmonyOS NEXT 原生应用开发:社交聊天对话过程实现
一、实现思路
本DEMO旨在展示如何在HarmonyOS NEXT平台上,利用ArkTS开发语言构建一个简易的社交聊天对话界面。用户可以在此界面上查看聊天记录,并发送新的消息。此示例中
发表于 01-07 10:55
DevEco Studio AI辅助开发工具两大升级功能 鸿蒙应用开发效率再提升
HarmonyOS应用的AI智能辅助开发助手——CodeGenie,该AI助手深度集成在DevEco Studio中,提供鸿蒙知识智能问答、鸿蒙
发表于 04-18 14:43
用鸿蒙开发AI应用(汇总)连载中
`1. 用鸿蒙开发AI应用(一)硬件篇本篇介绍了开发板Hi3516DV300的硬件资料,包括开箱组装、各主板介绍、芯片手册等等...2. 用鸿蒙
发表于 01-13 15:03
鸿蒙开发之ArkTS基础知识
一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能
鸿蒙实战开发ArkTS运用:【ai聊天框】
评论