衡阳派盒市场营销有限公司

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

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

3天內不再提示

鴻蒙實戰開發ArkTS運用:【ai聊天框】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-03-08 15:38 ? 次閱讀

簡介

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

demo

接口和屬性列表

接口列表

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

屬性列表

屬性描述
messages聊天消息列表,[IChatDataSource]類型。支持懶加載顯示的數據源
botAvatarchatbot頭像(可選)。Resource類型
userAvatar我的頭像(可選)。Resource類型
title標題欄標題。string類型
needTitleBar是否顯示標題欄。boolean類型
welcomeMessagechatbot默認歡迎語。string類型
botMessageBackgroundColorchatbot消息的背景顏色。string類型
botMessageTextColorchatbot消息的文本顏色。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']
    }
  }
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    57

    文章

    2392

    瀏覽量

    43055
  • HarmonyOS
    +關注

    關注

    79

    文章

    1982

    瀏覽量

    30579
收藏 人收藏

    評論

    相關推薦

    鴻蒙OS開發實戰:【ArkTS 實現MQTT協議(2)】

    1. 協議傳輸通道僅為TCPSocket 2. 基于HarmonyOS SDK API 9開發 3. 開發語言:ArkTS,TypeScript
    的頭像 發表于 04-01 14:48 ?1644次閱讀
    <b class='flag-5'>鴻蒙</b>OS<b class='flag-5'>開發</b><b class='flag-5'>實戰</b>:【<b class='flag-5'>ArkTS</b> 實現MQTT協議(2)】

    鴻蒙基礎開發實戰-(ArkTS)像素轉換

    的使用。通過像素轉換案例,向開發者講解了如何使用像素單位設置組件的尺寸、字體的大小以及不同像素單位之間的轉換方法。更多鴻蒙4.0的學習,可以前往主頁學習或前往《鴻蒙4.0開發學習目錄》
    發表于 01-11 16:53

    鴻蒙入門實戰-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

    鴻蒙實戰項目開發:【短信服務】

    環境搭建 ? 《鴻蒙開發基礎》 ArkTS語言 安裝DevEco Studio 運用你的第一個ArkTS應用 ArkUI聲明式UI
    發表于 03-03 21:29

    鴻蒙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

    瘋殼AI語音及開發實戰教程 Ⅲ 開發實戰

    瘋殼AI語音及開發實戰教程 Ⅲ 開發實戰
    發表于 11-05 16:54

    鴻蒙開發AI應用(匯總)連載中

    `1. 用鴻蒙開發AI應用(一)硬件篇本篇介紹了開發板Hi3516DV300的硬件資料,包括開箱組裝、各主板介紹、芯片手冊等等...2. 用鴻蒙
    發表于 01-13 15:03

    如何實現HarmonyOS Java端的氣泡聊天

      HarmonyOSJava端的氣泡聊天怎么實現?android上有9圖可實現?鴻蒙上有什么類似的方案沒?
    發表于 06-13 09:59

    鴻蒙開發ArkTS基礎知識

    一、ArkTS簡介 ArkTS是HarmonyOS優選的主力應用開發語言。它在TypeScript(簡稱TS)的基礎上,匹配了鴻蒙的ArkUI框架,擴展了聲明式UI、狀態管理等相應的能
    的頭像 發表于 01-24 16:44 ?2377次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b>之<b class='flag-5'>ArkTS</b>基礎知識
    百家乐官网庄牌闲牌| 大发888游戏 下载| 澳门百家乐官网开户投注| 加多宝百家乐的玩法技巧和规则| 玩百家乐官网澳门368娱乐城 | 百家乐如何必胜| 百家乐官网拍是什么| 百家乐九| 百家乐官网必胜绝| 驻马店市| 神州百家乐的玩法技巧和规则| 百家乐官网小路是怎么画的| 战神国际| 百家乐真人赌场娱乐网规则| 金花百家乐官网的玩法技巧和规则 | 网上百家乐官网试| 十六浦娱乐城| 赌场百家乐破解| 百家乐官网平台送彩金| 博彩投注| 百家乐大赌城| 百家乐官网论坛代理合作| 网络足球| 娱乐城百家乐可以代理吗| 百家乐官网翻天主题曲| 大发888娱乐场下载专区| 玩百家乐官网怎么能赢呢| 宜昌市| 蓝宝石百家乐娱乐城| 免费百家乐官网统计软件| 昌黎县| 百家乐大光明影院| 做生意放什么东西招财| 百家乐官网有看牌器吗| 威尼斯人娱乐代理注册| 百家乐官网翻天在线观看| 百家乐官网游戏怎样玩| 信誉棋牌评测网| 百家乐怎么押钱| 金木棉百家乐官网网络破解| 網絡博彩|