fix: 修复macos保存图片
This commit is contained in:
parent
e59cbf8b60
commit
2fab52d362
@ -1,6 +1,7 @@
|
||||
import 'dart:io';
|
||||
import 'dart:typed_data';
|
||||
import 'dart:ui' as ui;
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@ -15,35 +16,44 @@ class HIAntiLostController extends GetxController {
|
||||
Future<void> saveImage() async {
|
||||
// KRCommonUtil.kr_showLoading(message: "正在保存...");
|
||||
try {
|
||||
// Load image from assets
|
||||
final ByteData data =
|
||||
await rootBundle.load('assets/images/lost-share-image.png');
|
||||
final Uint8List pngBytes = data.buffer.asUint8List();
|
||||
|
||||
if (Platform.isMacOS || Platform.isWindows || Platform.isLinux) {
|
||||
// Desktop: Use FilePicker to save file
|
||||
String? outputFile = await FilePicker.platform.saveFile(
|
||||
dialogTitle: '保存图片',
|
||||
fileName: 'Hi快联系方式',
|
||||
type: FileType.custom,
|
||||
allowedExtensions: ['png'],
|
||||
);
|
||||
|
||||
if (outputFile != null) {
|
||||
final file = File(outputFile);
|
||||
await file.writeAsBytes(pngBytes);
|
||||
KRCommonUtil.kr_showToast("已保存至: $outputFile");
|
||||
}
|
||||
} else {
|
||||
// Mobile: Use Gal to save to gallery
|
||||
// Check permission
|
||||
final hasAccess = await Gal.hasAccess();
|
||||
if (!hasAccess) {
|
||||
await Gal.requestAccess();
|
||||
}
|
||||
|
||||
// Load image from assets
|
||||
final ByteData data =
|
||||
await rootBundle.load('assets/images/lost-share-image.png');
|
||||
final Uint8List pngBytes = data.buffer.asUint8List();
|
||||
|
||||
await Gal.putImageBytes(pngBytes);
|
||||
|
||||
String message = "已保存至系统相册";
|
||||
if (Platform.isMacOS) {
|
||||
message = "已保存至系统【照片】应用";
|
||||
} else if (Platform.isWindows) {
|
||||
message = "已保存至系统【图片】文件夹";
|
||||
}
|
||||
|
||||
HIDialog.show(
|
||||
message: message,
|
||||
message: "已保存至系统相册",
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
debugPrint("Save image error: $e");
|
||||
if (e is GalException) {
|
||||
KRCommonUtil.kr_showToast("保存失败: No Permission");
|
||||
} else {
|
||||
KRCommonUtil.kr_showToast("保存失败");
|
||||
KRCommonUtil.kr_showToast("保存失败: $e");
|
||||
}
|
||||
} finally {
|
||||
//KRCommonUtil.kr_hideLoading();
|
||||
|
||||
@ -4,9 +4,13 @@ PODS:
|
||||
- ReachabilitySwift
|
||||
- device_info_plus (0.0.1):
|
||||
- FlutterMacOS
|
||||
- file_picker (0.0.1):
|
||||
- FlutterMacOS
|
||||
- flutter_inappwebview_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- OrderedSet (~> 6.0.3)
|
||||
- flutter_secure_storage_macos (6.1.3):
|
||||
- FlutterMacOS
|
||||
- flutter_udid (0.0.1):
|
||||
- FlutterMacOS
|
||||
- SAMKeychain
|
||||
@ -33,13 +37,18 @@ PODS:
|
||||
- FlutterMacOS
|
||||
- url_launcher_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- webview_flutter_wkwebview (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- window_manager (0.2.0):
|
||||
- FlutterMacOS
|
||||
|
||||
DEPENDENCIES:
|
||||
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
|
||||
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||
- file_picker (from `Flutter/ephemeral/.symlinks/plugins/file_picker/macos`)
|
||||
- flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`)
|
||||
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
||||
- flutter_udid (from `Flutter/ephemeral/.symlinks/plugins/flutter_udid/macos`)
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- gal (from `Flutter/ephemeral/.symlinks/plugins/gal/darwin`)
|
||||
@ -50,6 +59,7 @@ DEPENDENCIES:
|
||||
- share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`)
|
||||
- tray_manager (from `Flutter/ephemeral/.symlinks/plugins/tray_manager/macos`)
|
||||
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||
- webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`)
|
||||
- window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`)
|
||||
|
||||
SPEC REPOS:
|
||||
@ -63,8 +73,12 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
|
||||
device_info_plus:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
|
||||
file_picker:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/file_picker/macos
|
||||
flutter_inappwebview_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos
|
||||
flutter_secure_storage_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos
|
||||
flutter_udid:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_udid/macos
|
||||
FlutterMacOS:
|
||||
@ -85,15 +99,19 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/tray_manager/macos
|
||||
url_launcher_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||
webview_flutter_wkwebview:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin
|
||||
window_manager:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747
|
||||
device_info_plus: 1b14eed9bf95428983aed283a8d51cce3d8c4215
|
||||
file_picker: e716a70a9fe5fd9e09ebc922d7541464289443af
|
||||
flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b
|
||||
flutter_secure_storage_macos: c2754d3483d20bb207bb9e5a14f1b8e771abcdb9
|
||||
flutter_udid: 2e7b3da4b5fdfba86a396b97898f5fe8f4ec1a52
|
||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
|
||||
gal: 6a522c75909f1244732d4596d11d6a2f86ff37a5
|
||||
in_app_purchase_storekit: a1ce04056e23eecc666b086040239da7619cd783
|
||||
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
|
||||
@ -105,6 +123,7 @@ SPEC CHECKSUMS:
|
||||
share_plus: 76dd39142738f7a68dd57b05093b5e8193f220f7
|
||||
tray_manager: 9064e219c56d75c476e46b9a21182087930baf90
|
||||
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
|
||||
webview_flutter_wkwebview: 29eb20d43355b48fe7d07113835b9128f84e3af4
|
||||
window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8
|
||||
|
||||
PODFILE CHECKSUM: 3100e00928a3ab9aaf1f0d7f435c5ff0d92c057c
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user