我正在做一个 react-native 项目,我需要从服务器下载一些图像文件并将它们保存在应用程序中。这些文件必须保存在应用程序的内部私有(private)存储中,这样应用程序用户必须无法找到这些文件(在非 root 手机中)。我在谷歌上搜索并找到了以下选项:
- 使用 AsyncStorage 并将图像文件保存为 Base64 字符串格式。 (我想避免这种情况,因为这会增加开销 [稍微增加文件大小] + 不必要的与 base64 相互转换的任务)
- 使用 rn-fetch-blob 库以 blob 格式直接从/向服务器获取数据,但我无法找到内部存储保存选项。此选项可帮助我将文件存储在 Documents 或 Download 等上,但我需要将文件存储在内部存储器中。
- 我可以使用 URI 作为所有图像的来源,但我希望尽可能避免对服务器的依赖。
请建议一种简单的方法来下载 react native 应用程序中的图像[或其他格式]文件,该文件必须位于应用程序的私有(private)数据文件夹中,无需任何转换为字符串或任何其他介质。
Best Answer-推荐答案 strong>
您可以使用 Document Directory 作为保存文件的路径。它将文件保存在您想要的应用程序的存储中,当您想要检索文件时,您已经知道基本路径,您只需要提供文件名即可访问文件。
const dirs = RNFetchBlob.fs.dirs;
RNFetchBlob
.config({
path : dirs.DocumentDir + `${folder_name}/${filename}`
}).fetch('GET', `${fileURL}`).progress((received=0, total=0) => {
//Handle progress of download here.. May be update UI...
}).then((resp) => {
//You can get the path of the file saved using resp.path()
.catch((err) => {
//Handle error here...
});
关于javascript - 如何在内部(应用程序的私有(private))存储中下载图像文件 react 原生,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/53479538/
|