Flutter Загрузка и кэширование изображений - PullRequest
0 голосов
/ 14 мая 2019

Вот мой пример использования:

  1. Я получаю список URL-адресов изображений.
  2. Я хочу отображать и кэшировать их в базе данных, а не только для конкретногосеанс, поэтому в следующий раз он не должен делать вызов веб-службы.

Наше приложение также работает в автономном режиме.Я перепробовал несколько библиотек, таких как flutter_advanced_networkimage и flutter_cache_manager, но я получаю довольно большую задержку, и в большинстве случаев происходит сбой приложения.

1 Ответ

1 голос
/ 14 мая 2019

Сохраните его во временном каталоге вашего приложения:

import 'dart:io';

// https://pub.dev/packages/path_provider
import 'package:path_provider/path_provider.dart';

final Directory temp = await getTemporaryDirectory();
final File imageFile = File('${temp.path}/images/someImageFile.png');

if (await imageFile.exists()) {
  // Use the cached images if it exists
} else {
  // Image doesn't exist in cache
  await imageFile.create(recursive: true);
  // Download the image and write to above file
  ...
}

Он будет сохраняться при запуске приложений и будет удален только тогда, когда пользователь лично очистит кеш или переустановит приложение.

...