也许我的问题听起来很愚蠢,但这是...
我们如何获得缓存图像的路径(在iOS和Android中)?
这是我的用例::我在我的应用程序上显示了一个视图,该视图列出了来自网络的图像->我从Google客户搜索API中根据用户提供的关键字获取了一系列网址。 ..
<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()}
/>
结果如下:
然后用户按下图像以将其选中,然后需要将该图像存储在应用程序的文件夹(Android中的 PictureDir / myappfolder / , 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 ...)
}
效果很好!但是要花一些时间,因为它会再次下载图像, 但我觉得这已经完成了两次,因为它已经下载并存储在缓存中以显示。
这又是我的问题,有没有办法知道图像在缓存中的存储位置,以便当用户按下图像进行保存时,它将不再下载 ,而宁愿将其从缓存文件夹中移动到应用程序文件夹中?
我说得通吗?还是重新下载正确的方法?
感谢您的帮助!