From 179ce76a53a88503fef6d02c4a2591a3eaa53cf3 Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Fri, 6 Feb 2026 13:46:55 +0800 Subject: [PATCH 1/8] =?UTF-8?q?feat(upload=5Fimage):=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E8=B5=84=E6=BA=90=E9=80=89=E6=8B=A9=E5=8F=8A?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=8E=8B=E7=BC=A9=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 集成 wechat_assets_picker 库实现图片和视频选择 - 使用 flutter_image_compress 库对选中图片进行压缩处理 - 替换原有 ImagePicker,实现多图片和视频的资源选取功能 - 压缩后图片保存为临时文件再进行上传 - 优化上传过程,兼容视频和图片的不同处理流程 - 简化回调调用代码,提升代码可读性与一致性 --- lib/upload_image/upload_images_tool.dart | 54 +++++++++++++++++------- pubspec.yaml | 2 + 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/lib/upload_image/upload_images_tool.dart b/lib/upload_image/upload_images_tool.dart index 1117c11..5a72c6d 100644 --- a/lib/upload_image/upload_images_tool.dart +++ b/lib/upload_image/upload_images_tool.dart @@ -1,13 +1,16 @@ import 'dart:io'; +import 'dart:math'; import 'package:flutter/cupertino.dart'; import 'package:flutter_common/upload_image/ossUtil.dart'; +import 'package:flutter_image_compress/flutter_image_compress.dart'; import 'package:get/get.dart'; import 'package:image_picker/image_picker.dart'; // import 'package:images_picker/images_picker.dart'; // import 'package:images_picker/images_picker.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'package:wechat_assets_picker/wechat_assets_picker.dart'; class UploadImagesTool { static uploadImagesTool({ @@ -136,9 +139,7 @@ class UploadImagesTool { ) : CupertinoActionSheet( title: const Text('上传图片'), - message: (max == null || max == 0) - ? null - : Text('请选择上传方式\n相册最多${max ?? 9}张'), + message: (max == null || max == 0) ? null : Text('请选择上传方式\n相册最多${max ?? 9}张'), actions: isAddOtherWidget != null ? [ isAddOtherWidget, @@ -152,8 +153,7 @@ class UploadImagesTool { policy: policy ?? '', callback: callback ?? '', signature: signature ?? '', - chooseImages: (list) => - chooseImages?.call(list), + chooseImages: (list) => chooseImages?.call(list), ); Get.back(); }, @@ -169,8 +169,7 @@ class UploadImagesTool { policy: policy ?? '', callback: callback ?? '', signature: signature ?? '', - chooseImages: (list) => - chooseImages?.call(list), + chooseImages: (list) => chooseImages?.call(list), ); Get.back(); }, @@ -187,8 +186,7 @@ class UploadImagesTool { policy: policy ?? '', callback: callback ?? '', signature: signature ?? '', - chooseImages: (list) => - chooseImages?.call(list), + chooseImages: (list) => chooseImages?.call(list), ); Get.back(); }, @@ -205,8 +203,7 @@ class UploadImagesTool { callback: callback ?? '', signature: signature ?? '', isShowLoading: isShowLoading, - chooseImages: (list) => - chooseImages?.call(list), + chooseImages: (list) => chooseImages?.call(list), ); Get.back(); }, @@ -265,7 +262,11 @@ class UploadImagesTool { bool? isShowLoading, }) async { if (isVideo == true) { - XFile? video = await ImagePicker().pickVideo(source: ImageSource.gallery); + final List? result = await AssetPicker.pickAssets( + Get.context!, + pickerConfig: AssetPickerConfig(maxAssets: 1, requestType: RequestType.video), + ); + final File? video = await result?.first.file; String path = await saveNetworkImgGallery( video?.path ?? '', fileType: 'mp4', @@ -277,11 +278,32 @@ class UploadImagesTool { signature: signature ?? '', ); chooseImages?.call([path]); - print('video path ============ $path'); } else { - List? images = await ImagePicker().pickMultiImage(); + final List? result = await AssetPicker.pickAssets( + Get.context!, + pickerConfig: AssetPickerConfig(maxAssets: max ?? 50), + ); + /// 临时存储选中的图片 + final List selectedFiles = []; + if (result != null && result.isNotEmpty) { + for (int i = 0; i < result.length; i++) { + final File? file = await result[i].file; + if (file != null) { + /// 获取文件扩展名 + final String extension = file.absolute.path.split('.').last; + // 压缩并保存到临时文件 + final XFile? compressedFile = await FlutterImageCompress.compressAndGetFile( + file.absolute.path, '${file.parent.path}/${DateTime.now().millisecondsSinceEpoch}_compressed.$extension', + quality: 80, minWidth: 1920, minHeight: 1080); + if (compressedFile != null) { + selectedFiles.add(compressedFile); + } + } + } + } + /// 上传选中的图片 List list = []; - for (var element in images) { + for (var element in selectedFiles) { String path = await saveNetworkImgGallery( element.path, oSSAccessKeyId: oSSAccessKeyId ?? '', @@ -333,7 +355,7 @@ class UploadImagesTool { String? signature, String? ossDirectory, String? ossHost, - bool? isShowLoading, + bool? isShowLoading, }) async { String string = await UploadOss.upload( path, diff --git a/pubspec.yaml b/pubspec.yaml index e62aa18..aca7d00 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,6 +42,8 @@ dependencies: image_editor_plus: ^1.0.6 path_provider: ^2.1.5 cached_network_image: ^3.4.1 + wechat_assets_picker: ^10.1.0 + flutter_image_compress: ^2.4.0 dev_dependencies: flutter_test: From 0aea393ed08ced8d9dab8c6254f48c2e33b06942 Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Fri, 6 Feb 2026 14:06:47 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix(upload=5Fimage):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=8E=8B=E7=BC=A9=E5=9B=BE=E7=89=87=E5=90=8E=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=9C=AA=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化图片压缩流程后立即删除临时文件 - 避免临时文件堆积占用存储空间 - 保持压缩图片的质量和尺寸设置不变 - 确保选中的文件列表正确添加压缩文件实例 --- lib/upload_image/upload_images_tool.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/upload_image/upload_images_tool.dart b/lib/upload_image/upload_images_tool.dart index 5a72c6d..c1aff5a 100644 --- a/lib/upload_image/upload_images_tool.dart +++ b/lib/upload_image/upload_images_tool.dart @@ -291,12 +291,14 @@ class UploadImagesTool { if (file != null) { /// 获取文件扩展名 final String extension = file.absolute.path.split('.').last; - // 压缩并保存到临时文件 + /// 压缩并保存到临时文件 final XFile? compressedFile = await FlutterImageCompress.compressAndGetFile( file.absolute.path, '${file.parent.path}/${DateTime.now().millisecondsSinceEpoch}_compressed.$extension', quality: 80, minWidth: 1920, minHeight: 1080); if (compressedFile != null) { selectedFiles.add(compressedFile); + /// 删除临时文件 + File(compressedFile.path).deleteSync(); } } } From 5d89f23ddc0d534ae28c430945f16cfa30576a64 Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Fri, 6 Feb 2026 14:40:19 +0800 Subject: [PATCH 3/8] =?UTF-8?q?fix(upload=5Fimages):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6=E5=A4=84=E7=90=86=E4=B8=8E?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 上传图片后删除oss上传的临时文件,防止文件残留 - 选择上传方式时修正相册最大数量提示,避免显示null - 压缩图片时创建临时目录存储压缩文件,提升文件管理安全性 - 保留压缩文件以供后续使用,避免压缩后文件被误删 --- lib/upload_image/ossUtil.dart | 2 ++ lib/upload_image/upload_images_tool.dart | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/upload_image/ossUtil.dart b/lib/upload_image/ossUtil.dart index df1b6e9..3532efc 100755 --- a/lib/upload_image/ossUtil.dart +++ b/lib/upload_image/ossUtil.dart @@ -77,6 +77,8 @@ class UploadOss { ); print("response ===== $response"); EasyLoading.dismiss(); + /// 删除临时文件 + File(path).deleteSync(); // 成功后返回文件访问路径 return "$ossHost/$ossDirectory$pathName"; } on DioError catch (e) { diff --git a/lib/upload_image/upload_images_tool.dart b/lib/upload_image/upload_images_tool.dart index c1aff5a..dbc24e8 100644 --- a/lib/upload_image/upload_images_tool.dart +++ b/lib/upload_image/upload_images_tool.dart @@ -139,7 +139,7 @@ class UploadImagesTool { ) : CupertinoActionSheet( title: const Text('上传图片'), - message: (max == null || max == 0) ? null : Text('请选择上传方式\n相册最多${max ?? 9}张'), + message: (max == null || max == 0) ? null : Text('请选择上传方式\n相册最多${max}张'), actions: isAddOtherWidget != null ? [ isAddOtherWidget, @@ -279,6 +279,8 @@ class UploadImagesTool { ); chooseImages?.call([path]); } else { + /// 创建临时目录 + final Directory tempDir = Directory.systemTemp.createTempSync('compressed_images_'); final List? result = await AssetPicker.pickAssets( Get.context!, pickerConfig: AssetPickerConfig(maxAssets: max ?? 50), @@ -293,12 +295,10 @@ class UploadImagesTool { final String extension = file.absolute.path.split('.').last; /// 压缩并保存到临时文件 final XFile? compressedFile = await FlutterImageCompress.compressAndGetFile( - file.absolute.path, '${file.parent.path}/${DateTime.now().millisecondsSinceEpoch}_compressed.$extension', + file.absolute.path, '${tempDir.path}/${DateTime.now().millisecondsSinceEpoch}_compressed.$extension', quality: 80, minWidth: 1920, minHeight: 1080); if (compressedFile != null) { selectedFiles.add(compressedFile); - /// 删除临时文件 - File(compressedFile.path).deleteSync(); } } } From fb790ba81df249b92f588daa558e4884d2fe9963 Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Fri, 6 Feb 2026 14:53:35 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix(upload=5Fimage):=20=E9=99=90=E5=88=B6?= =?UTF-8?q?=E6=8B=8D=E6=91=84=E5=9B=BE=E7=89=87=E7=9A=84=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=E5=92=8C=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在使用相机拍照时设置最大高度为1080像素 - 设置最大宽度为1920像素以控制图片尺寸 - 调整图片质量为80以优化图片大小与清晰度 - 确保用户取消拍摄时正常返回 --- lib/upload_image/upload_images_tool.dart | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/upload_image/upload_images_tool.dart b/lib/upload_image/upload_images_tool.dart index dbc24e8..8f7ad0f 100644 --- a/lib/upload_image/upload_images_tool.dart +++ b/lib/upload_image/upload_images_tool.dart @@ -232,6 +232,9 @@ class UploadImagesTool { }) async { XFile? file = await ImagePicker().pickImage( source: ImageSource.camera, + maxHeight: 1080, + maxWidth: 1920, + imageQuality: 80 ); if (file == null) { Get.back(); From 12091d5c0281bba27f09a206d845bdebdfe18c3a Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Fri, 6 Feb 2026 15:23:42 +0800 Subject: [PATCH 5/8] =?UTF-8?q?fix(utils):=20=E4=BF=AE=E5=A4=8D=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=B0=BA=E5=AF=B8=E5=8F=82=E6=95=B0=E6=8B=BC=E6=8E=A5?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整图片尺寸参数根据传入的宽高动态生成 - 解决默认最小尺寸为300的逻辑问题,保证图片不会偏小 - 将错误图片组件从Container改为SizedBox,保持尺寸一致 - 修改padding计算方式,防止布局异常 - 确保图片加载URL正确拼接尺寸参数 --- lib/utils/customer.dart | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/utils/customer.dart b/lib/utils/customer.dart index 995c13c..0f85f99 100644 --- a/lib/utils/customer.dart +++ b/lib/utils/customer.dart @@ -96,16 +96,29 @@ class CustomerImagesNetworking extends StatelessWidget { @override Widget build(BuildContext context) { + String? sizeParams = ''; + int tempHeight = 300; + int tempWidth = 300; + if (height != null) { + sizeParams = '?x-oss-process=image/resize,h_$tempHeight,w_$tempHeight'; + } + if (width != null) { + tempWidth = width!.toInt() <= 300 ? 300 : width!.toInt(); + sizeParams = '?x-oss-process=image/resize,h_$tempWidth,w_$tempWidth'; + } + if (height != null && width != null) { + tempHeight = height!.toInt() <= 300 ? 300 : height!.toInt(); + sizeParams = '?x-oss-process=image/resize,h_$tempHeight,w_$tempWidth'; + } return CachedNetworkImage( - imageUrl: imageUrl, + imageUrl: imageUrl + sizeParams, width: width, height: height, fit: fit, errorWidget: (_, object, s) { - return Container( + return SizedBox( width: width, height: height, - padding: EdgeInsets.all((width ?? 0) / 2), child: Center( child: Image.asset( 'assets/images/noContainer.png', From eb68269dc6479cd8ffe30a9767b259c5edebfa53 Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Tue, 10 Feb 2026 13:12:26 +0800 Subject: [PATCH 6/8] no message --- .dart_tool/package_config.json | 102 +++++++------ .flutter-plugins-dependencies | 2 +- .idea/libraries/Dart_Packages.xml | 136 ++++++++++-------- .idea/libraries/Flutter_Plugins.xml | 7 +- .../flutter/generated_plugin_registrant.cc | 4 - example/linux/flutter/generated_plugins.cmake | 1 - example/pubspec.lock | 136 ++++++++++-------- pubspec.lock | 88 ++++++++++++ 8 files changed, 315 insertions(+), 161 deletions(-) diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index 14edc62..add33ee 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -241,6 +241,42 @@ "packageUri": "lib/", "languageVersion": "2.12" }, + { + "name": "flutter_image_compress", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress-2.4.0", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter_image_compress_common", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_common-1.0.6", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter_image_compress_macos", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_macos-1.0.3", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter_image_compress_ohos", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_ohos-0.0.3", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter_image_compress_platform_interface", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_platform_interface-1.0.5", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter_image_compress_web", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_web-0.1.5", + "packageUri": "lib/", + "languageVersion": "2.12" + }, { "name": "flutter_inappwebview", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview-6.1.5", @@ -343,12 +379,6 @@ "packageUri": "lib/", "languageVersion": "3.9" }, - { - "name": "freezed_annotation", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/freezed_annotation-3.1.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, { "name": "get", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/get-4.7.3", @@ -475,12 +505,6 @@ "packageUri": "lib/", "languageVersion": "3.7" }, - { - "name": "json_annotation", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/json_annotation-4.9.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, { "name": "leak_tracker", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/leak_tracker-11.0.2", @@ -565,12 +589,6 @@ "packageUri": "lib/", "languageVersion": "3.0" }, - { - "name": "omni_video_player", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/omni_video_player-3.7.2", - "packageUri": "lib/", - "languageVersion": "3.9" - }, { "name": "package_info_plus", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0", @@ -667,6 +685,18 @@ "packageUri": "lib/", "languageVersion": "3.8" }, + { + "name": "photo_manager", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/photo_manager-3.8.3", + "packageUri": "lib/", + "languageVersion": "2.13" + }, + { + "name": "photo_manager_image_provider", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/photo_manager_image_provider-2.2.0", + "packageUri": "lib/", + "languageVersion": "2.13" + }, { "name": "photo_view", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/photo_view-0.15.0", @@ -817,12 +847,6 @@ "packageUri": "lib/", "languageVersion": "3.3" }, - { - "name": "simple_sparse_list", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/simple_sparse_list-0.1.4", - "packageUri": "lib/", - "languageVersion": "3.0" - }, { "name": "sky_engine", "rootUri": "file:///Users/wxl/Desktop/flutter/bin/cache/pkg/sky_engine", @@ -925,12 +949,6 @@ "packageUri": "lib/", "languageVersion": "3.5" }, - { - "name": "unicode", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/unicode-1.1.9", - "packageUri": "lib/", - "languageVersion": "3.0" - }, { "name": "url_launcher", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher-6.3.2", @@ -1033,12 +1051,6 @@ "packageUri": "lib/", "languageVersion": "3.5" }, - { - "name": "volume_controller", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/volume_controller-3.4.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, { "name": "wakelock_plus", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0", @@ -1057,6 +1069,18 @@ "packageUri": "lib/", "languageVersion": "3.4" }, + { + "name": "wechat_assets_picker", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wechat_assets_picker-10.1.0", + "packageUri": "lib/", + "languageVersion": "3.6" + }, + { + "name": "wechat_picker_library", + "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wechat_picker_library-1.0.7", + "packageUri": "lib/", + "languageVersion": "3.4" + }, { "name": "win32", "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/win32-5.15.0", @@ -1087,12 +1111,6 @@ "packageUri": "lib/", "languageVersion": "3.4" }, - { - "name": "youtube_explode_dart", - "rootUri": "file:///Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/youtube_explode_dart-3.0.5", - "packageUri": "lib/", - "languageVersion": "3.0" - }, { "name": "flutter_common", "rootUri": "../", diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 40117a4..5946615 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_ios-1.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_gallery_saver_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13+3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.6.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_apple","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_apple-9.4.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_ios-2.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.6/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqflite_darwin","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_darwin-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.6/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"video_player_avfoundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.9.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":true,"dependencies":["package_info_plus"],"dev_dependency":false}],"android":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_android-1.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.33/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_gallery_saver_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13+12/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.22/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_android-12.1.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_android-2.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.18/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqflite_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_android-2.4.2+2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.28/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"video_player_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.9.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":true,"dependencies":["package_info_plus"],"dev_dependency":false}],"macos":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_selector_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_macos-1.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2+1/","native_build":false,"dependencies":["file_selector_macos"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.6.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_macos-2.1.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.6/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqflite_darwin","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_darwin-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"video_player_avfoundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.9.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":true,"dependencies":["package_info_plus"],"dev_dependency":false}],"linux":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_selector_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_linux-0.2.2/","native_build":false,"dependencies":["file_selector_linux"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":false,"dependencies":["package_info_plus"],"dev_dependency":false}],"windows":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_selector_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_windows-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_windows-0.2.2/","native_build":false,"dependencies":["file_selector_windows"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_windows-0.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_windows-2.1.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":false,"dependencies":["package_info_plus"],"dev_dependency":false}],"web":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_web-1.1.2/","dependencies":[],"dev_dependency":false},{"name":"image_picker_for_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.1/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","dependencies":[],"dev_dependency":false},{"name":"permission_handler_html","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_html-0.1.3+5/","dependencies":[],"dev_dependency":false},{"name":"shared_preferences_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-2.4.3/","dependencies":[],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.2/","dependencies":[],"dev_dependency":false},{"name":"video_player_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_web-2.4.0/","dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","dependencies":["package_info_plus"],"dev_dependency":false}]},"dependencyGraph":[{"name":"device_info_plus","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_inappwebview","dependencies":["flutter_inappwebview_android","flutter_inappwebview_ios","flutter_inappwebview_macos","flutter_inappwebview_web","flutter_inappwebview_windows"]},{"name":"flutter_inappwebview_android","dependencies":[]},{"name":"flutter_inappwebview_ios","dependencies":[]},{"name":"flutter_inappwebview_macos","dependencies":[]},{"name":"flutter_inappwebview_web","dependencies":[]},{"name":"flutter_inappwebview_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_gallery_saver_plus","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"screen_brightness","dependencies":["screen_brightness_android","screen_brightness_ios","screen_brightness_macos","screen_brightness_windows","screen_brightness_ohos"]},{"name":"screen_brightness_android","dependencies":[]},{"name":"screen_brightness_ios","dependencies":[]},{"name":"screen_brightness_macos","dependencies":[]},{"name":"screen_brightness_ohos","dependencies":[]},{"name":"screen_brightness_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":["sqflite_android","sqflite_darwin"]},{"name":"sqflite_android","dependencies":[]},{"name":"sqflite_darwin","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"wakelock_plus","dependencies":["package_info_plus"]}],"date_created":"2026-01-30 15:15:33.875423","version":"3.38.5","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_image_compress_common","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_common-1.0.6/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_ios-1.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_gallery_saver_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_ios-0.8.13+3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.6.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_apple","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_apple-9.4.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"photo_manager","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/photo_manager-3.8.3/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_ios-2.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.6/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqflite_darwin","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_darwin-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_ios","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_ios-6.3.6/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"video_player_avfoundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.9.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":true,"dependencies":["package_info_plus"],"dev_dependency":false}],"android":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_image_compress_common","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_common-1.0.6/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_android-1.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_plugin_android_lifecycle-2.0.33/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_gallery_saver_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_gallery_saver_plus-4.0.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_android-0.8.13+12/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_android-2.2.22/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_android-12.1.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"photo_manager","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/photo_manager-3.8.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_android-2.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_android-2.4.18/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqflite_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_android-2.4.2+2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_android-6.3.28/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"video_player_android","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_android-2.9.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":true,"dependencies":["package_info_plus"],"dev_dependency":false}],"macos":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_selector_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_macos-0.9.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_image_compress_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_macos-1.0.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_macos-1.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_macos-0.2.2+1/","native_build":false,"dependencies":["file_selector_macos"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_foundation-2.6.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"photo_manager","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/photo_manager-3.8.3/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_macos-2.1.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_foundation-2.5.6/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqflite_darwin","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/sqflite_darwin-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_macos","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_macos-3.2.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"video_player_avfoundation","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_avfoundation-2.9.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":true,"dependencies":["package_info_plus"],"dev_dependency":false}],"linux":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_selector_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_linux-0.9.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_linux-0.2.2/","native_build":false,"dependencies":["file_selector_linux"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_linux-3.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":false,"dependencies":["package_info_plus"],"dev_dependency":false}],"windows":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_selector_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/file_selector_windows-0.9.3+5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_windows-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_picker_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_windows-0.2.2/","native_build":false,"dependencies":["file_selector_windows"],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"permission_handler_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_windows-0.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"screen_brightness_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/screen_brightness_windows-2.1.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_windows-3.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","native_build":false,"dependencies":["package_info_plus"],"dev_dependency":false}],"web":[{"name":"device_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/device_info_plus-11.5.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_image_compress_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_image_compress_web-0.1.5/","dependencies":[],"dev_dependency":false},{"name":"flutter_inappwebview_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/flutter_inappwebview_web-1.1.2/","dependencies":[],"dev_dependency":false},{"name":"image_picker_for_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/image_picker_for_web-3.1.1/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/package_info_plus-9.0.0/","dependencies":[],"dev_dependency":false},{"name":"permission_handler_html","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/permission_handler_html-0.1.3+5/","dependencies":[],"dev_dependency":false},{"name":"shared_preferences_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/shared_preferences_web-2.4.3/","dependencies":[],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/url_launcher_web-2.4.2/","dependencies":[],"dev_dependency":false},{"name":"video_player_web","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/video_player_web-2.4.0/","dependencies":[],"dev_dependency":false},{"name":"wakelock_plus","path":"/Users/wxl/.pub-cache/hosted/pub.flutter-io.cn/wakelock_plus-1.4.0/","dependencies":["package_info_plus"],"dev_dependency":false}]},"dependencyGraph":[{"name":"device_info_plus","dependencies":[]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"flutter_image_compress","dependencies":["flutter_image_compress_common","flutter_image_compress_web","flutter_image_compress_macos","flutter_image_compress_ohos"]},{"name":"flutter_image_compress_common","dependencies":[]},{"name":"flutter_image_compress_macos","dependencies":[]},{"name":"flutter_image_compress_ohos","dependencies":[]},{"name":"flutter_image_compress_web","dependencies":[]},{"name":"flutter_inappwebview","dependencies":["flutter_inappwebview_android","flutter_inappwebview_ios","flutter_inappwebview_macos","flutter_inappwebview_web","flutter_inappwebview_windows"]},{"name":"flutter_inappwebview_android","dependencies":[]},{"name":"flutter_inappwebview_ios","dependencies":[]},{"name":"flutter_inappwebview_macos","dependencies":[]},{"name":"flutter_inappwebview_web","dependencies":[]},{"name":"flutter_inappwebview_windows","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_gallery_saver_plus","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"name":"photo_manager","dependencies":[]},{"name":"screen_brightness","dependencies":["screen_brightness_android","screen_brightness_ios","screen_brightness_macos","screen_brightness_windows","screen_brightness_ohos"]},{"name":"screen_brightness_android","dependencies":[]},{"name":"screen_brightness_ios","dependencies":[]},{"name":"screen_brightness_macos","dependencies":[]},{"name":"screen_brightness_ohos","dependencies":[]},{"name":"screen_brightness_windows","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":["sqflite_android","sqflite_darwin"]},{"name":"sqflite_android","dependencies":[]},{"name":"sqflite_darwin","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]},{"name":"wakelock_plus","dependencies":["package_info_plus"]}],"date_created":"2026-02-06 12:37:19.480339","version":"3.38.5","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml index 38ed2fc..86c668a 100644 --- a/.idea/libraries/Dart_Packages.xml +++ b/.idea/libraries/Dart_Packages.xml @@ -289,6 +289,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -408,13 +450,6 @@ - - - - - - @@ -562,13 +597,6 @@ - - - - - - @@ -667,13 +695,6 @@ - - - - - - @@ -786,6 +807,20 @@ + + + + + + + + + + + + @@ -961,13 +996,6 @@ - - - - - - @@ -1087,13 +1115,6 @@ - - - - - - @@ -1213,13 +1234,6 @@ - - - - - - @@ -1241,6 +1255,20 @@ + + + + + + + + + + + + @@ -1276,13 +1304,6 @@ - - - - - - @@ -1326,6 +1347,12 @@ + + + + + + @@ -1341,7 +1368,6 @@ - @@ -1363,7 +1389,6 @@ - @@ -1378,7 +1403,6 @@ - @@ -1395,6 +1419,8 @@ + + @@ -1420,7 +1446,6 @@ - @@ -1437,7 +1462,6 @@ - @@ -1455,16 +1479,16 @@ - + + - diff --git a/.idea/libraries/Flutter_Plugins.xml b/.idea/libraries/Flutter_Plugins.xml index 9e14d1b..2ab6bd3 100644 --- a/.idea/libraries/Flutter_Plugins.xml +++ b/.idea/libraries/Flutter_Plugins.xml @@ -24,7 +24,6 @@ - @@ -50,6 +49,12 @@ + + + + + + diff --git a/example/linux/flutter/generated_plugin_registrant.cc b/example/linux/flutter/generated_plugin_registrant.cc index f807986..7299b5c 100644 --- a/example/linux/flutter/generated_plugin_registrant.cc +++ b/example/linux/flutter/generated_plugin_registrant.cc @@ -8,7 +8,6 @@ #include #include -#include void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = @@ -17,7 +16,4 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); - g_autoptr(FlPluginRegistrar) volume_controller_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "VolumeControllerPlugin"); - volume_controller_plugin_register_with_registrar(volume_controller_registrar); } diff --git a/example/linux/flutter/generated_plugins.cmake b/example/linux/flutter/generated_plugins.cmake index b1b7b42..786ff5c 100644 --- a/example/linux/flutter/generated_plugins.cmake +++ b/example/linux/flutter/generated_plugins.cmake @@ -5,7 +5,6 @@ list(APPEND FLUTTER_PLUGIN_LIST file_selector_linux url_launcher_linux - volume_controller ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/example/pubspec.lock b/example/pubspec.lock index f0a18ee..33fc025 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -333,6 +333,54 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "3.0.5" + flutter_image_compress: + dependency: transitive + description: + name: flutter_image_compress + sha256: "51d23be39efc2185e72e290042a0da41aed70b14ef97db362a6b5368d0523b27" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.0" + flutter_image_compress_common: + dependency: transitive + description: + name: flutter_image_compress_common + sha256: c5c5d50c15e97dd7dc72ff96bd7077b9f791932f2076c5c5b6c43f2c88607bfb + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.6" + flutter_image_compress_macos: + dependency: transitive + description: + name: flutter_image_compress_macos + sha256: "20019719b71b743aba0ef874ed29c50747461e5e8438980dfa5c2031898f7337" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.3" + flutter_image_compress_ohos: + dependency: transitive + description: + name: flutter_image_compress_ohos + sha256: e76b92bbc830ee08f5b05962fc78a532011fcd2041f620b5400a593e96da3f51 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.3" + flutter_image_compress_platform_interface: + dependency: transitive + description: + name: flutter_image_compress_platform_interface + sha256: "579cb3947fd4309103afe6442a01ca01e1e6f93dc53bb4cbd090e8ce34a41889" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.5" + flutter_image_compress_web: + dependency: transitive + description: + name: flutter_image_compress_web + sha256: b9b141ac7c686a2ce7bb9a98176321e1182c9074650e47bb140741a44b6f5a96 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.5" flutter_inappwebview: dependency: transitive description: @@ -463,14 +511,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "10.12.0" - freezed_annotation: - dependency: transitive - description: - name: freezed_annotation - sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.1.0" get: dependency: "direct main" description: @@ -639,14 +679,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.7.2" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" - url: "https://pub.flutter-io.cn" - source: hosted - version: "4.9.0" leak_tracker: dependency: transitive description: @@ -759,14 +791,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.1.0" - omni_video_player: - dependency: transitive - description: - name: omni_video_player - sha256: e01ce74413c2eb1cfe042c81507ef2573af66e7ee2984b9ee45808d35a3ea9da - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.7.2" package_info_plus: dependency: transitive description: @@ -895,6 +919,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "7.0.1" + photo_manager: + dependency: transitive + description: + name: photo_manager + sha256: "807688e3221e90fb02a4466746edd9cb9a0de025f8754c819f96604c00f6f1f5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.8.3" + photo_manager_image_provider: + dependency: transitive + description: + name: photo_manager_image_provider + sha256: b6015b67b32f345f57cf32c126f871bced2501236c405aafaefa885f7c821e4f + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" photo_view: dependency: transitive description: @@ -1095,14 +1135,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.4.1" - simple_sparse_list: - dependency: transitive - description: - name: simple_sparse_list - sha256: aa648fd240fa39b49dcd11c19c266990006006de6699a412de485695910fbc1f - url: "https://pub.flutter-io.cn" - source: hosted - version: "0.1.4" sky_engine: dependency: transitive description: flutter @@ -1236,14 +1268,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.4.0" - unicode: - dependency: transitive - description: - name: unicode - sha256: a6f7bcfc8ea1d5ce1f6c0b1c39117a9919f4953edd9fd7a64090a9796c499b57 - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.1.9" url_launcher: dependency: transitive description: @@ -1380,14 +1404,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "15.0.2" - volume_controller: - dependency: transitive - description: - name: volume_controller - sha256: "5c1a13d2ea99d2f6753e7c660d0d3fab541f36da3999cafeb17b66fe49759ad7" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.4.1" wakelock_plus: dependency: transitive description: @@ -1412,6 +1428,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" + wechat_assets_picker: + dependency: transitive + description: + name: wechat_assets_picker + sha256: e718fc1593e7afa9f01f8bc8b0a9831859b4ca8caf359eeb1aece4825305103b + url: "https://pub.flutter-io.cn" + source: hosted + version: "10.1.0" + wechat_picker_library: + dependency: transitive + description: + name: wechat_picker_library + sha256: "5cb61b9aa935b60da5b043f8446fbb9c5077419f20ccc4856bf444aec4f44bc1" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.7" win32: dependency: transitive description: @@ -1452,14 +1484,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "3.1.3" - youtube_explode_dart: - dependency: transitive - description: - name: youtube_explode_dart - sha256: "3d731d71df9901b1915bae806781df519cff32517e36db279f844ae619669e45" - url: "https://pub.flutter-io.cn" - source: hosted - version: "3.0.5" sdks: dart: ">=3.10.3 <4.0.0" flutter: ">=3.38.4" diff --git a/pubspec.lock b/pubspec.lock index d7246cd..fe8bf4f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -318,6 +318,54 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "3.0.5" + flutter_image_compress: + dependency: "direct main" + description: + name: flutter_image_compress + sha256: "51d23be39efc2185e72e290042a0da41aed70b14ef97db362a6b5368d0523b27" + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.4.0" + flutter_image_compress_common: + dependency: transitive + description: + name: flutter_image_compress_common + sha256: c5c5d50c15e97dd7dc72ff96bd7077b9f791932f2076c5c5b6c43f2c88607bfb + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.6" + flutter_image_compress_macos: + dependency: transitive + description: + name: flutter_image_compress_macos + sha256: "20019719b71b743aba0ef874ed29c50747461e5e8438980dfa5c2031898f7337" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.3" + flutter_image_compress_ohos: + dependency: transitive + description: + name: flutter_image_compress_ohos + sha256: e76b92bbc830ee08f5b05962fc78a532011fcd2041f620b5400a593e96da3f51 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.0.3" + flutter_image_compress_platform_interface: + dependency: transitive + description: + name: flutter_image_compress_platform_interface + sha256: "579cb3947fd4309103afe6442a01ca01e1e6f93dc53bb4cbd090e8ce34a41889" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.5" + flutter_image_compress_web: + dependency: transitive + description: + name: flutter_image_compress_web + sha256: b9b141ac7c686a2ce7bb9a98176321e1182c9074650e47bb140741a44b6f5a96 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.5" flutter_inappwebview: dependency: "direct main" description: @@ -856,6 +904,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "7.0.1" + photo_manager: + dependency: transitive + description: + name: photo_manager + sha256: "807688e3221e90fb02a4466746edd9cb9a0de025f8754c819f96604c00f6f1f5" + url: "https://pub.flutter-io.cn" + source: hosted + version: "3.8.3" + photo_manager_image_provider: + dependency: transitive + description: + name: photo_manager_image_provider + sha256: b6015b67b32f345f57cf32c126f871bced2501236c405aafaefa885f7c821e4f + url: "https://pub.flutter-io.cn" + source: hosted + version: "2.2.0" photo_view: dependency: "direct main" description: @@ -1309,6 +1373,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.4.0" + visibility_detector: + dependency: transitive + description: + name: visibility_detector + sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.4.0+2" vm_service: dependency: transitive description: @@ -1341,6 +1413,22 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.1.1" + wechat_assets_picker: + dependency: "direct main" + description: + name: wechat_assets_picker + sha256: e718fc1593e7afa9f01f8bc8b0a9831859b4ca8caf359eeb1aece4825305103b + url: "https://pub.flutter-io.cn" + source: hosted + version: "10.1.0" + wechat_picker_library: + dependency: transitive + description: + name: wechat_picker_library + sha256: "5cb61b9aa935b60da5b043f8446fbb9c5077419f20ccc4856bf444aec4f44bc1" + url: "https://pub.flutter-io.cn" + source: hosted + version: "1.0.7" win32: dependency: transitive description: From bd452ddc8240345e9eb847c7422f7de75c7169dc Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Thu, 12 Feb 2026 17:49:13 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix(upload=5Fimage):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6=E5=88=A0=E9=99=A4=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=8A=E6=8F=90=E7=A4=BA=E6=96=87=E6=9C=AC=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 仅在jpg文件类型时删除临时文件,防止误删其他文件类型 - 修正上传图片提示中相册最大数量变量显示问题,提升用户体验 --- lib/upload_image/ossUtil.dart | 6 ++++-- lib/upload_image/upload_image.dart | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/upload_image/ossUtil.dart b/lib/upload_image/ossUtil.dart index 3532efc..b3f1a73 100755 --- a/lib/upload_image/ossUtil.dart +++ b/lib/upload_image/ossUtil.dart @@ -77,8 +77,10 @@ class UploadOss { ); print("response ===== $response"); EasyLoading.dismiss(); - /// 删除临时文件 - File(path).deleteSync(); + if(fileType == 'jpg'){ + /// 删除临时文件 + File(path).deleteSync(); + } // 成功后返回文件访问路径 return "$ossHost/$ossDirectory$pathName"; } on DioError catch (e) { diff --git a/lib/upload_image/upload_image.dart b/lib/upload_image/upload_image.dart index 17b0fd8..17fc181 100644 --- a/lib/upload_image/upload_image.dart +++ b/lib/upload_image/upload_image.dart @@ -280,7 +280,7 @@ class _UploadImagesState extends State { title: const Text('上传图片'), message: (max == null || max == 0) ? null - : Text('请选择上传方式\n相册最多${max ?? 9}张'), + : Text('请选择上传方式\n相册最多$max张'), actions: [ CupertinoActionSheetAction( child: const Text('拍照上传'), From faeeb5265307c2438cabe4a17fbc13c8e7f87a36 Mon Sep 17 00:00:00 2001 From: wuxinglong Date: Mon, 13 Apr 2026 18:28:39 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E5=92=8C=E8=AF=B7=E6=B1=82=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/http/http_utils.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/http/http_utils.dart b/lib/http/http_utils.dart index adee16f..fcd068e 100755 --- a/lib/http/http_utils.dart +++ b/lib/http/http_utils.dart @@ -19,8 +19,8 @@ class HttpUtils { BaseOptions options = BaseOptions( baseUrl: baseUrl, contentType: 'application/json; charset=utf-8', - connectTimeout: const Duration(milliseconds: 15000), - receiveTimeout: const Duration(milliseconds: 15000), + connectTimeout: const Duration(seconds: 60), + receiveTimeout: const Duration(seconds: 60), responseType: ResponseType.json, validateStatus: (status) { return true;