feat: 增强发布动态功能,支持图片上传与进度显示
- 在PublishFeedRequest中新增resList属性,支持上传图片资源信息。 - 在EditFeedFeature中实现图片上传逻辑,处理图片选择与上传进度。 - 更新EditFeedView以显示图片上传进度,提升用户体验。 - 在COSManager中新增UIImage上传方法,优化图片上传流程。 - 在FeedListView中添加通知以刷新动态列表,确保数据同步。
This commit is contained in:
@@ -192,7 +192,8 @@ class COSManager: ObservableObject {
|
||||
} else {
|
||||
// 构建云地址
|
||||
let domain = tokenData.customDomain.isEmpty ? "\(tokenData.bucket).cos.\(tokenData.region).myqcloud.com" : tokenData.customDomain
|
||||
let cloudURL = "https://\(domain)/\(key)"
|
||||
let prefix = domain.hasPrefix("http") ? "" : "https://"
|
||||
let cloudURL = "\(prefix)\(domain)/\(key)"
|
||||
debugInfoSync("✅ 图片上传成功: \(cloudURL)")
|
||||
continuation.resume(returning: cloudURL)
|
||||
}
|
||||
@@ -200,6 +201,19 @@ class COSManager: ObservableObject {
|
||||
QCloudCOSTransferMangerService.defaultCOSTransferManager().uploadObject(request)
|
||||
}
|
||||
}
|
||||
|
||||
/// 上传 UIImage 到腾讯云 COS,自动压缩为 JPEG(0.8)
|
||||
/// - Parameters:
|
||||
/// - image: UIImage 实例
|
||||
/// - apiService: API 服务实例
|
||||
/// - Returns: 上传成功的云地址,如果失败返回 nil
|
||||
func uploadUIImage(_ image: UIImage, apiService: any APIServiceProtocol & Sendable) async -> String? {
|
||||
guard let data = image.jpegData(compressionQuality: 0.8) else {
|
||||
debugInfoSync("❌ 图片压缩失败,无法生成 JPEG 数据")
|
||||
return nil
|
||||
}
|
||||
return await uploadImage(data, apiService: apiService)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - 调试扩展
|
||||
|
||||
Reference in New Issue
Block a user