Как скачать изображения с URL и кэшировать их для Android (React-Native) - PullRequest
0 голосов
/ 06 ноября 2019

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

Версия response-native: 0.60.5

Я пытался использовать библиотеку rn-fetch-blob. Мне удалось сохранить изображение в кеше, но, тем не менее, когда я использую путь

RNFetchBlob
  .config({
    fileCache : true,
    appendExt : 'jpg'
  })
  .fetch('GET', 'some url from firebase storage', {
  })
  .then((res) => {
     this.setState({ imagePAth: res.path() })
  })
<Image
  style={{ width: 200, height: 200, resizeMode: "contain" }}
  source={{ uri: "file://" + this.state.imagePath }}
/>

, он не отображает изображение.

Другие мои соратники сказали, что реагируютБиблиотека native-fs не работает и не работает. Поэтому я доверял им, но если есть кто-то, кто смог сделать это с помощью response-native-fs, пожалуйста, дайте мне знать.

Я также пытался использовать response-native-cached-image, но это всегда давалоЯ и ошибка

undefined is not an object Netinfo.isconnected

Самая новая версия response-native-cached-image требует наличия библиотеки netinfo по адресу response-native-community. Кстати, я был подключен к интернету. Я использовал пример кода в библиотеке, чтобы проверить его.

Если вам нужно сослаться на библиотеку, которую я использовал: https://github.com/fungilation/react-native-cached-image

Я был бы очень признателен за любую помощь. Спасибо!

1 Ответ

1 голос
/ 06 ноября 2019

Вы можете попробовать react-native-fast-image

yarn add react-native-fast-image or npm install --save react-native-fast-image

Примечание : вы должны использовать React Native 0.60.0 или выше, чтобы использовать самую последнюю версию реактив-нативный-fast-image.

Пример

import FastImage from 'react-native-fast-image'

const YourImage = () => (
    <FastImage
        style={{ width: 200, height: 200 }}
        source={{
            uri: 'https://unsplash.it/400/400?image=1',
            headers: { Authorization: 'someAuthToken' },
            priority: FastImage.priority.normal,
        }}
        resizeMode={FastImage.resizeMode.contain}
    />
)
...