Pārlūkot izejas kodu

feat(chat): 支持视频消息并优化图片消息

- 新增 ChatItemVideoView 组件用于显示视频消息
- 重构 ChatItemView 组件,支持文本、图片和视频消息
- 添加 VideoPreviewView 组件用于预览视频消息
- 优化 ImagePreviewView组件,增加图片下载功能
- 更新 MessageHelper,添加 videoPreviewController
- 调整 HosChatView,集成新的消息预览功能
徐勤民 1 mēnesi atpakaļ
vecāks
revīzija
62f6fb563d
1 mainītis faili ar 22 papildinājumiem un 1 dzēšanām
  1. 22 1
      src/main/ets/http/HttpHelper.ets

+ 22 - 1
src/main/ets/http/HttpHelper.ets

@@ -4,6 +4,8 @@ import { LogHelper } from '../../../../Index';
 import { SZYXLocalStorageHelper } from '../utils/SZYXLocalStorageHelper';
 import { SZYXLocalStorageKeys } from '../utils/SZYXLocalStorageKeys';
 import { HttpHelperX, HttpParamsForm, HttpParamsGet, HttpParamsPost } from './HttpHelperX';
+import { BusinessError } from '@kit.BasicServicesKit';
+import { image } from '@kit.ImageKit';
 
 
 export class HttpHelper {
@@ -275,7 +277,7 @@ export class HttpHelper {
 
             if (typeof data.result === 'string') {
               resolve(JSON.parse(data.result) as T)
-            }else{
+            } else {
               resolve(data.result as T)
             }
           } else {
@@ -321,4 +323,23 @@ export class HttpHelper {
         this.httpHandlerList.length)
     }
   }
+
+  downloadImage(url: string): Promise<image.ImageSource> {
+    return new Promise<image.ImageSource>((resolve, reject) => {
+      http.createHttp()
+        .request(url, (error: BusinessError, data: http.HttpResponse) => {
+          if (error) {
+            reject(error)
+            return
+          }
+          if (data.result instanceof ArrayBuffer) {
+            let imageData: ArrayBuffer = data.result as ArrayBuffer;
+            let imageSource: image.ImageSource = image.createImageSource(imageData);
+            resolve(imageSource)
+          } else {
+            reject(new Error('下载图片失败'))
+          }
+        })
+    })
+  }
 }