React Native - 是否可以使用 rn-fetch-blob 下载多个资产?
React Native - Is it possible to download multiple assets using rn-fetch-blob?
有没有办法使用 rn-fetch-blob 下载一组对象(.mp4、.jpg 等...)?现在这段代码正在抓取单个 .mp4 url,但是如果我有一个 .mp4 数组和一些 .jpg 混合怎么办?我怎么会做这样的事情?
说我有数据:
const data = [
{media: url.jpg},
{media: url.mp4},
{media: url.mp4},
{media: url.jpg}
]
如何设置我的提取以便它循环访问数据,并且我可以在 CameraRoll 之后做一些事情?
RNFetchBlob.config({
fileCache: true,
appendExt: 'mp4',
}).fetch(
'GET',
'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
在此先感谢您的帮助!
编辑:我没有测试过这个,但看看我写的,这会成为一个问题吗?
for ( let foo of data ) {
// write out some code to see if the url has .mp4 or .jpg extension?
RNFetchBlob.config({
fileCache: true,
appendExt: 'mp4', // variable of the correct extension
}).fetch(
'GET',
foo.media, // from the data object?
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
}
或者有更简单的方法吗?
您可以执行类似以下代码的操作:
const data = [
{media: url.jpg},
{media: url.mp4},
{media: url.mp4},
{media: url.jpg}
]
data.map((item) => {
const extention = item.media.split(".").pop(); // <-- get item extention
RNFetchBlob.config({
fileCache: true,
appendExt: extention, // <-- extention
}).fetch(
'GET',
item.media, // <-- item url
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
})
有没有办法使用 rn-fetch-blob 下载一组对象(.mp4、.jpg 等...)?现在这段代码正在抓取单个 .mp4 url,但是如果我有一个 .mp4 数组和一些 .jpg 混合怎么办?我怎么会做这样的事情?
说我有数据:
const data = [
{media: url.jpg},
{media: url.mp4},
{media: url.mp4},
{media: url.jpg}
]
如何设置我的提取以便它循环访问数据,并且我可以在 CameraRoll 之后做一些事情?
RNFetchBlob.config({
fileCache: true,
appendExt: 'mp4',
}).fetch(
'GET',
'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
在此先感谢您的帮助!
编辑:我没有测试过这个,但看看我写的,这会成为一个问题吗?
for ( let foo of data ) {
// write out some code to see if the url has .mp4 or .jpg extension?
RNFetchBlob.config({
fileCache: true,
appendExt: 'mp4', // variable of the correct extension
}).fetch(
'GET',
foo.media, // from the data object?
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
}
或者有更简单的方法吗?
您可以执行类似以下代码的操作:
const data = [
{media: url.jpg},
{media: url.mp4},
{media: url.mp4},
{media: url.jpg}
]
data.map((item) => {
const extention = item.media.split(".").pop(); // <-- get item extention
RNFetchBlob.config({
fileCache: true,
appendExt: extention, // <-- extention
}).fetch(
'GET',
item.media, // <-- item url
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
})