一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙實戰(zhàn)開發(fā)ArkTS運用:【ai聊天框】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-08 15:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡介

用一個ArkTS編寫的HarmonyOS原生聊天UI框架,提供了開箱即用的聊天對話組件。

demo

接口和屬性列表

接口列表

接口參數(shù)功能
setTyping(isTyping)isTyping:布爾值顯示/隱藏消息加載動畫
postMessage(msg,clearInput)msg:[ChatMessage]類型 clearInput: boolean類型。在對話界面中顯示消息 指示展示消息時是否清空輸入框內(nèi)容,默認清除。
submitUserInput(userIputText)userIputText:string類型。觸發(fā)Chat組件用戶發(fā)送消息事件

屬性列表

屬性描述
messages聊天消息列表,[IChatDataSource]類型。支持懶加載顯示的數(shù)據(jù)源
botAvatarchatbot頭像(可選)。Resource類型
userAvatar我的頭像(可選)。Resource類型
title標題欄標題。string類型
needTitleBar是否顯示標題欄。boolean類型
welcomeMessagechatbot默認歡迎語。string類型
botMessageBackgroundColorchatbot消息的背景顏色。string類型
botMessageTextColorchatbot消息的文本顏色。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
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(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
    的頭像 發(fā)表于 04-01 14:48 ?2181次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發(fā)</b><b class='flag-5'>實戰(zhàn)</b>:【<b class='flag-5'>ArkTS</b> 實現(xiàn)MQTT協(xié)議(2)】

    鴻蒙入門實戰(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)的能
    的頭像 發(fā)表于 01-24 16:44 ?3337次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>之<b class='flag-5'>ArkTS</b>基礎(chǔ)知識