Может быть, мой вопрос будет звучать глупо, но вот он ...
Как мы можем получить путь к кэшированному изображению (как в iOS, так и в Android)?
Вот мой пример использования: Я представляю в своем приложении представление со списком изображений из Интернета -> Я получаю массив URL-адресов из API поиска клиентов Google на основе предоставленных пользователем ключевых слов ...
<FlatList
style={{ width: '100%' }}
data={this.state.suggestions}
numColumns={2}
renderItem={(img) => {
return (
<TouchableOpacity onPress={() => this.selectImageHandler(img.item)} >
<Image source={{ uri: img.item.link }} />
</TouchableOpacity>
)
}}
keyExtractor={(item, index) => index.toString()}
/>
Результат выглядит следующим образом:
Затем пользователь нажимает на изображение, чтобы выбрать его, что затемнеобходимо сохранить это изображение в папке приложения ( PictureDir / myappfolder / в Android, DocumentDir / myappfolder / в iOS) ...
Что я делаю правильноТеперь, когда изображение выбрано, я загружаю его снова:
selectImageHandler = (img) => {
// (... pre code ...)
RNFS.downloadFile({
fromUrl: img.link, // e.g. "http://www.url.to/the/picture.png
toFile: uri, // e.g. "file://"+PictureDir+ "/myAppFolder/picturename.jpg"
}).promise.then( res => {
// (... post code ...)
}
Работает отлично!Но это занимает немного времени, так как оно загружает изображение снова, но я чувствую, что оно делает это дважды, поскольку оно уже было загружено и сохранено в кеше для отображения.
Итак, снова возникает мой вопрос, есть ли способ узнать, где изображение было сохранено в кэше, так что когда пользователь нажал на изображение, чтобы сохранить его, оно не загрузит его снова, а скорее переместит это из папки кеша в папку приложения?
Имею ли я какой-то смысл?Или перезагружается правильный подход?
Спасибо за вашу помощь!