在react-native中使用Blob下载文件

时间:2018-07-02 09:56:30

标签: javascript react-native blob expo

自从本机v0.54和Expo SDK v26起,现在支持Blob。

我正在尝试将URL上可用的文件下载到手机上(如果可能,请下载到Android上的Downloads目录中)

我现在只能找到的是使用react-native-fetch-blob的现有解决方案,这似乎已不再必要。

如果有人可以提供有关如何在Expo snack上开始实现此功能的简短示例

1 个答案:

答案 0 :(得分:-1)

世博会

文件系统

您可以使用 FileSystem 模块下载内容并将其保存在设备上的目录下。

安装

  • 管理工作流程

$ expo install expo-file-system

  • 裸露的工作流程

在裸露的工作流程中,请按照说明 here

用法

  1. 导入模块
import * as FileSystem from 'expo-file-system';
  1. 创建可恢复下载。

使用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 属性,以确保如果您尝试创建多级目录,它还会为您创建父文件夹(如果没有退出)。