Как сохранить изображения в телефонную галерею на устройстве iOS в Flutter?IOS

Программируем под IOS
Ответить
Anonymous
 Как сохранить изображения в телефонную галерею на устройстве iOS в Flutter?

Сообщение Anonymous »

'Я использую пакет saver_gallery Flutter, чтобы сохранить изображения в моей телефонной галерее как на iOS, так и на Android. Я использую пакет Image_picker , чтобы взять изображение с помощью камеры. Когда я сохраняю изображение в своем приложении, я вижу, что оно находится в галерее на телефоне Android, но оно не удается на устройстве iOS. Кроме того, если я снова открою приложение на устройстве iOS, и я не могу увидеть это изображение и в своем приложении. '< /P>

Код: Выделить всё

Future checkAndRequestPermissions({required bool skipIfExists}) async
{
if (!Platform.isAndroid && !Platform.isIOS)
{
return false; // Only Android and iOS platforms are supported
}

if (Platform.isAndroid) {
final deviceInfo = await DeviceInfoPlugin().androidInfo;
final sdkInt = deviceInfo.version.sdkInt;

if (skipIfExists) {
// Read permission is required to check if the file already exists
return sdkInt >= 33
? await Permission.photos.request().isGranted
: await Permission.storage.request().isGranted;
} else {
// No read permission required for Android SDK 29 and above
return sdkInt >= 29 ? true : await Permission.storage.request().isGranted;
}
} else if (Platform.isIOS) {
// iOS permission for saving images to the gallery
return skipIfExists
? await Permission.photos.request().isGranted
: await Permission.photosAddOnly.request().isGranted;
}

return false; // Unsupported platforms
}

Future saveImageToGallery(File imageFile, String imageName, {bool skipIfExists = false}) async{

final hasPermissions = await checkAndRequestPermissions(skipIfExists: skipIfExists);
if(!hasPermissions){
print("Permission Denied");
return;
}

final savedImage = await SaverGallery.saveFile(
filePath: imageFile.path,
fileName: "$imageName.jpg",
androidRelativePath: "Pictures/my_app",
skipIfExists: skipIfExists);

if(savedImage.isSuccess == true) {
print(imageFile.path);
} else{
print("Failed");
}
}

/* This is my function to take an image using camersa*/

Future addImageFromCamera() async {
final pickedImage = await imagePick.pickImage(source: ImageSource.camera);
return pickedImage != null ? File(pickedImage.path) : null;
}
< /code>
'Это мой код для того же. Я использую тот же код, который они использовали на странице Pub.DEV в пакете saver_gallery 
, только я использую файл вместо байтов изображения. Я считаю, что изображение временно сохраняется, и оно удалено позже, поэтому я не вижу его в приложении. Если кто -то сможет помочь мне с этим, это было бы очень полезно. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... in-flutter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»