自从本机v0.54
和Expo SDK v26
起,现在支持Blob。
我正在尝试将URL上可用的文件下载到手机上(如果可能,请下载到Android上的Downloads
目录中)
我现在只能找到的是使用react-native-fetch-blob
的现有解决方案,这似乎已不再必要。
如果有人可以提供有关如何在Expo snack
上开始实现此功能的简短示例
答案 0 :(得分:-1)
您可以使用 FileSystem
模块下载内容并将其保存在设备上的目录下。
$ expo install expo-file-system
在裸露的工作流程中,请按照说明 here。
import * as FileSystem from 'expo-file-system';
使用async/await
await FileSystem.downloadAsync(URI, FILE_URI, OPTIONS);
使用承诺
FileSystem.downloadAsync(
'http://techslides.com/demos/sample-videos/small.mp4',
FileSystem.documentDirectory + 'small.mp4'
)
.then(({ uri }) => {
console.log('Finished downloading to ', uri);
})
.catch(error => {
console.error(error);
});
请记住,为了保存/存储下载的内容,您需要传递一个有效目录路径/uri。即FileSystem.documentDirectory + 'small.mp4'
。为了保证目录的路径存在,您可以使用FileSystem 模块本身来创建一个目录。像这样:
await FileSystem.makeDirectoryAsync(path, { intermediates: true });
。 options 对象采用 intermediates 属性,以确保如果您尝试创建多级目录,它还会为您创建父文件夹(如果没有退出)。