簡介
用一個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 | 標(biāo)題欄標(biāo)題。string類型 |
needTitleBar | 是否顯示標(biāo)題欄。boolean類型 |
welcomeMessage | chatbot默認歡迎語。string類型 |
botMessageBackgroundColor | chatbot消息的背景顏色。string類型 |
botMessageTextColor | chatbot消息的文本顏色。string類型 |
userMessageBackgroundColor | 用戶消息的背景顏色。string類型 |
userMessageTextColor | 用戶消息的文本顏色。string類型 |
messageFontSize | 消息文本的字體大小。number類型 |
needBackButton | 是否顯示頂部返回按鈕。點擊返回導(dǎo)航上一頁。boolean類型 |
needInputControl | 是否需要底部輸入?yún)^(qū)域。 boolean類型 |
InputControl | 底部輸入?yún)^(qū)域,@BuilderParams類型。該區(qū)域可自定義為你自己的布局 |
controller | 自定義輸入控制器,自定義輸入?yún)^(qū)時必填。[ChatController]類型 |
backIcon | 返回按鈕圖標(biāo)。Resource類型 |
clearChatIcon | 清楚聊天按鈕圖標(biāo)。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)
//顯示回復(fù)等待動畫
ctl.setTyping(true)
//3秒后發(fā)送chatbot響應(yīng)消息
setTimeout(() = > {
ctl.postMessage(new ChatMessage(ChatRole.Assistant, '這是一條測試回復(fù)'))
}, 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 = ''
//顯示回復(fù)等待動畫
ctl.setTyping(true)
//3秒后發(fā)送chatbot響應(yīng)消息
setTimeout(() = > {
ctl.postMessage(new ChatMessage(ChatRole.Assistant, '這是一條測試回復(fù)'),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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2287瀏覽量
42629 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1954瀏覽量
29897
發(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
鴻蒙基礎(chǔ)開發(fā)實戰(zhàn)-(ArkTS)像素轉(zhuǎn)換
的使用。通過像素轉(zhuǎn)換案例,向開發(fā)者講解了如何使用像素單位設(shè)置組件的尺寸、字體的大小以及不同像素單位之間的轉(zhuǎn)換方法。更多鴻蒙4.0的學(xué)習(xí),可以前往主頁學(xué)習(xí)或前往《鴻蒙4.0開發(fā)學(xué)習(xí)目錄》
發(fā)表于 01-11 16:53
鴻蒙入門實戰(zhàn)-ArkTS開發(fā)
聲明式UI基本概念
應(yīng)用界面是由一個個頁面組成,ArkTS是由ArkUI框架提供,用于以聲明式開發(fā)范式開發(fā)界面的語言。
聲明式UI構(gòu)建頁面的過程,其實是組合組件的過程,聲明式UI的思想,主要體現(xiàn)在
發(fā)表于 01-16 17:27
1月18號“純鴻蒙”千帆啟航,程序員預(yù)備!
4.0&next文檔)其中內(nèi)容包含:
《鴻蒙開發(fā)基礎(chǔ)》
1.ArkTS語言
2.安裝DevEco Studio
3.運用你的第一個ArkTS
發(fā)表于 01-16 22:13
鴻蒙語言ArkTS(更好的生產(chǎn)力與性能)
ArkTS是鴻蒙生態(tài)的應(yīng)用開發(fā)語言
ArkTS提供了聲明式UI范式、狀態(tài)管理支持等相應(yīng)的能力,讓開發(fā)者可以以更簡潔、更自然的方式
發(fā)表于 02-17 15:56
純血鴻蒙系統(tǒng),拿什么與安卓、iOS比?
、數(shù)碼、車載等等一系列生態(tài)閉環(huán)。
而華為鴻蒙是全棧自研底座,從AI大模型、AI框架、安全隱私、集成開發(fā)環(huán)境、設(shè)計系統(tǒng)、編程框體、編譯器、編程語言和文件系統(tǒng),到操作系統(tǒng)內(nèi)核。去掉了傳統(tǒng)
發(fā)表于 02-21 21:04
鴻蒙這么大聲勢,為何遲遲看不見崗位?最新數(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
鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡ArkTS相互操作(一)
ArkTS 運行時接口,為用戶提供庫級別的 ArkTS 互操作能力。一、使用場景:
1.在 ArkTS 應(yīng)用開發(fā)倉頡模塊:把用戶倉頡代碼封裝成為
發(fā)表于 07-31 17: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
OpenHarmony 應(yīng)用開發(fā)SDK、API 與基礎(chǔ)工具
一、整體說明
ArkTS 語言是鴻蒙系統(tǒng)主推的應(yīng)用開發(fā)語言。因此鴻蒙系統(tǒng)提供給開發(fā)者的 API 絕大部分也是
發(fā)表于 09-19 15:45
鴻蒙 OS 應(yīng)用開發(fā)初體驗
工具包
ArkTS:鴻蒙生態(tài)的應(yīng)用開發(fā)語言。
JS:JavaScript
Previewer:預(yù)覽器
Toolchains:工具鏈
Create Project
配置工程
項目名稱、包名、存儲路徑、編譯
發(fā)表于 11-02 19:38
鴻蒙開發(fā)之ArkTS基礎(chǔ)知識
一、ArkTS簡介 ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開發(fā)語言。它在TypeScript(簡稱TS)的基礎(chǔ)上,匹配了鴻蒙的ArkUI框架,擴展了聲明式UI、狀態(tài)管理等相應(yīng)的能
評論