簡介
用一個ArkTS編寫的HarmonyOS原生聊天UI框架,提供了開箱即用的聊天對話組件。
接口和屬性列表
接口列表
接口 | 參數(shù) | 功能 |
---|---|---|
setTyping(isTyping) | isTyping:布爾值 | 顯示/隱藏消息加載動畫 |
postMessage(msg,clearInput) | msg:[ChatMessage]類型 clearInput: boolean類型。 | 在對話界面中顯示消息 指示展示消息時是否清空輸入框內(nèi)容,默認清除。 |
submitUserInput(userIputText) | userIputText:string類型。 | 觸發(fā)Chat組件用戶發(fā)送消息事件 |
屬性列表
屬性 | 描述 |
---|---|
messages | 聊天消息列表,[IChatDataSource]類型。支持懶加載顯示的數(shù)據(jù)源 |
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 | 是否需要底部輸入?yún)^(qū)域。 boolean類型 |
InputControl | 底部輸入?yún)^(qū)域,@BuilderParams類型。該區(qū)域可自定義為你自己的布局 |
controller | 自定義輸入控制器,自定義輸入?yún)^(qū)時必填。[ChatController]類型 |
backIcon | 返回按鈕圖標。Resource類型 |
clearChatIcon | 清楚聊天按鈕圖標。Resource類型 |
submitButtonText | 提交消息按鈕文本。string類型 |
inputTextPlaceHolder | 輸入框提示文本。string類型 |
inputTextPlaceHolderColor | 輸入框提示文本的顏色。string類型 |
inputTextColor | 輸入文本的顏色。string類型 |
needSubmitButton | 是否顯示提交消息按鈕。boolean類型 |
使用示例
這里演示簡單的調(diào)用ChatUI組件
import { Chat, ChatRole, ChatMessage } from '@changwei/chatui'
@Entry
@Component
struct Index {
build() {
Row() {
Column() {
Chat({
title:'demo chatbot',
welcomeMessage: '我是你的測試bot',
onSendMessage: (ctl, message) = > {
//發(fā)送用戶消息
ctl.postMessage(message)
//顯示回復等待動畫
ctl.setTyping(true)
//3秒后發(fā)送chatbot響應(yīng)消息
setTimeout(() = > {
ctl.postMessage(new ChatMessage(ChatRole.Assistant, '這是一條測試回復'))
}, 3000)
}
})
}
}
.height('100%')
}
}
深度定制聊天UI。替換輸入?yún)^(qū)域為你自己的輸入組件,替換頭像,文本顏色等。
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) = > {
//發(fā)送用戶消息
ctl.postMessage(message)
this.userInput = ''
//顯示回復等待動畫
ctl.setTyping(true)
//3秒后發(fā)送chatbot響應(yīng)消息
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(); // 獲取傳遞過來的參數(shù)對象
if(params) {
this.needBackButton = params['needBackButton']
}
}
}
審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
鴻蒙
+關(guān)注
關(guān)注
60文章
2621瀏覽量
44074 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2126瀏覽量
33121
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
鴻蒙OS開發(fā)實戰(zhàn):【ArkTS 實現(xiàn)MQTT協(xié)議(2)】
1. 協(xié)議傳輸通道僅為TCPSocket
2. 基于HarmonyOS SDK API 9開發(fā)
3. 開發(fā)語言:ArkTS,TypeScript

鴻蒙入門實戰(zhàn)-ArkTS開發(fā)
聲明式UI基本概念
應(yīng)用界面是由一個個頁面組成,ArkTS是由ArkUI框架提供,用于以聲明式開發(fā)范式開發(fā)界面的語言。
聲明式UI構(gòu)建頁面的過程,其實是組合組件的過程,聲明式UI的思想,主要體現(xiàn)在
發(fā)表于 01-16 17:27
鴻蒙這么大聲勢,為何遲遲看不見崗位?最新數(shù)據(jù)來了
基礎(chǔ)》
ArkTS語言
安裝DevEco Studio
運用你的第一個ArkTS應(yīng)用
ArkUI聲明式UI開發(fā)
.……
《鴻蒙
發(fā)表于 02-29 20:53
鴻蒙實戰(zhàn)項目開發(fā):【短信服務(wù)】
環(huán)境搭建
?
《鴻蒙開發(fā)基礎(chǔ)》
ArkTS語言
安裝DevEco Studio
運用你的第一個ArkTS應(yīng)用
ArkUI聲明式UI
發(fā)表于 03-03 21:29
鴻蒙Flutter實戰(zhàn):05-使用第三方插件
# 鴻蒙Flutter 實戰(zhàn):使用第三方插件
在鴻蒙Flutter開發(fā)中,如果涉及到使用原生功能,就要使用插件。使用插件有兩種方式,一種是自己編寫原生
發(fā)表于 10-22 21:54
鴻蒙Flutter實戰(zhàn):06-使用ArkTs開發(fā)Flutter鴻蒙插件
# 使用 ArkTs 開發(fā) Flutter 鴻蒙平臺插件
本文講述如何開發(fā)一個 Flutter 鴻蒙插件,如何實現(xiàn) Flutter 與
發(fā)表于 10-22 21:56
鴻蒙Flutter實戰(zhàn):08-如何調(diào)試代碼
# 鴻蒙Flutter實戰(zhàn):如何調(diào)試代碼
## 1.環(huán)境搭建
參考文章[鴻蒙Flutter實戰(zhàn):01-搭建開發(fā)環(huán)境](https://g
發(fā)表于 10-23 16:29
HarmonyOS NEXT 應(yīng)用開發(fā)練習:AI智能對話框
一、練習內(nèi)容
在這個HarmonyOS NEXT原生應(yīng)用DEMO中,我們將使用ArkTS開發(fā)語言創(chuàng)建一個功能更為豐富的AI智能對話框。這個對話框
發(fā)表于 01-03 11:29
HarmonyOS NEXT 原生應(yīng)用開發(fā):社交聊天對話過程實現(xiàn)
一、實現(xiàn)思路
本DEMO旨在展示如何在HarmonyOS NEXT平臺上,利用ArkTS開發(fā)語言構(gòu)建一個簡易的社交聊天對話界面。用戶可以在此界面上查看聊天記錄,并發(fā)送新的消息。此示例中
發(fā)表于 01-07 10:55
《AI Agent應(yīng)用與項目實戰(zhàn)》閱讀體驗--跟著迪哥學Agent
感謝電子發(fā)燒友的這次活動,讓我有幸抽中了《AI Agent應(yīng)用與項目實戰(zhàn)》(以下簡稱《Agent》)這本書的贈送。
收到書本之后我就迫不及待地學習書本中的知識。如果說依靠各種平臺上的文章了解關(guān)于AI
發(fā)表于 03-02 12:28
DevEco Studio AI輔助開發(fā)工具兩大升級功能 鴻蒙應(yīng)用開發(fā)效率再提升
HarmonyOS應(yīng)用的AI智能輔助開發(fā)助手——CodeGenie,該AI助手深度集成在DevEco Studio中,提供鴻蒙知識智能問答、鴻蒙
發(fā)表于 04-18 14:43
瘋殼AI語音及開發(fā)實戰(zhàn)教程 Ⅲ 開發(fā)實戰(zhàn)
瘋殼AI語音及開發(fā)實戰(zhàn)教程 Ⅲ 開發(fā)實戰(zhàn)
發(fā)表于 11-05 16:54
用鴻蒙開發(fā)AI應(yīng)用(匯總)連載中
`1. 用鴻蒙開發(fā)AI應(yīng)用(一)硬件篇本篇介紹了開發(fā)板Hi3516DV300的硬件資料,包括開箱組裝、各主板介紹、芯片手冊等等...2. 用鴻蒙
發(fā)表于 01-13 15:03
如何實現(xiàn)HarmonyOS Java端的氣泡聊天框?
HarmonyOSJava端的氣泡聊天框怎么實現(xiàn)?android上有9圖可實現(xiàn)?鴻蒙上有什么類似的方案沒?
發(fā)表于 06-13 09:59
鴻蒙開發(fā)之ArkTS基礎(chǔ)知識
一、ArkTS簡介 ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配了鴻蒙的ArkUI框架,擴展了聲明式UI、狀態(tài)管理等相應(yīng)的能

評論