[英]React-native: How to implement caching for image in tvOS?
React-native:如何在tvOS中实现图像缓存?
我想实现我在互联网上下载的图像缓存,如何用apple tv做到这一点? 我尝试了很多库,但是任何人都与苹果电视兼容
您必须使用AsyncStorage
手动执行缓存。 您可以使用AsyncStorage.setItem
添加必须缓存到存储的对象,并使用AsyncStorage.getItem
返回对象。 这两个函数都将返回promise。
// cache item
try {
await AsyncStorage.setItem('@MyAppCache:myKey', myItem);
} catch {
//couldn't cache item, handle it
}
// retrieve item from cache
try {
const myItem = await AsyncStorage.getItem('@MyAppCache:myKey');
} catch {
//didn't find item in cache, download from the internet
}
如果这看起来太低级,那么围绕AsyncStorage
有一些非常好的包装器,例如react-native-storage ,它提供了一些好东西,比如在缓存项目上设置过期日期,查询批处理和其他东西。
反应原住民FS现在兼容tvOS 看到 。 所以现在你可以使用任何使用它的库!
例如, react-native-cacheable-image :
您需要安装并链接react-native-fs ,只需键入:
npm install react-native-fs --save # install react-native-fs
react-native link react-native-fs #link native module
现在您可以安装react-native-cacheable-image :
npm i react-native-cacheable-image --save
像这样导入这个库:
import CacheableImage from 'react-native-cacheable-image'
现在您可以使用JSX创建这样的图像:
<CacheableImage
style={{height:20}}
source={{uri: "http://www.foobar.com/defaultImage.jpeg"}}
>
根据您的设备有一些规范,请参阅react-native-cacheable-image的文档
我希望我的回答很有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.