React Native iOS 从应用程序 Documents 文件夹中读取图像

Posted

技术标签:

【中文标题】React Native iOS 从应用程序 Documents 文件夹中读取图像【英文标题】:React Native iOS read image from apps Documents folder 【发布时间】:2016-09-02 07:02:58 【问题描述】:

我必须将图像下载到我的 ios 应用本地文件系统并读回。

在我的模拟器上,我可以看到我的应用程序的文件系统和目录

/Library/Developer/CoreSimulator/Devices/[UUID]/data/Containers/Data/Application/[UUID]/

/Documents
/Library
/tmp

为了尝试,我将 foo.png 复制到 /Documents 文件夹,然后尝试

<Image source=uri: "file://Documents/foo.png" style=width:100, height:100/>

这不起作用,知道有什么方法可以做到这一点。

【问题讨论】:

你的意思是从沙箱中的文档目录中获取图像对..?? 【参考方案1】:

这也花了我很多时间......如果有更好的信息,它会是 5 分钟!

我使用react-native-fs 获取目录(适用于 ios 和 android):

var RNFS = require('react-native-fs');

RNFS.DocumentDirectoryPath 然后在 iOS 上返回类似 '/var/mobile/Containers/Data/Application/15AC1CC6-8CFF-48F0-AFFD-949368383ACB/Documents' 的东西

我的图像元素看起来像:

<Image
    style=width:100, height:100
    source=uri: 'file://' + RNFS.DocumentDirectoryPath + '/myAwesomeSubDir/my.png', scale:1
/> 

我的问题是我没有先设置宽度和高度,这对于 url 或资产路径是不需要的。当使用 base64 uri 时,宽度和高度也是强制性的(这实际上让我找到了解决方案!)。

【讨论】:

什么是'myAwesomeSubDir'?是那个以应用程序名称创建的文件夹吗? 正如您在我的回答中看到的那样,RNFS.DocumentDirectoryPath 会为您返回文档目录的路径。您的文件可能直接位于该目录下或子目录中......因此,如果您的文件直接存储在文档文件夹中,请忽略该部分! 对我来说情况类似。将文件的文件名保存在 docs 目录中,然后在运行时重建完整路径。我可能是错的,但文档目录和父母目录可能会四处移动/更改位置/uuid。 我实际上已经有了通过 react-native-image-crop-picker 获得的路径并且不需要 react-native-fs,我只是没有设置宽度和高度!谢谢!【参考方案2】:

试试 tilda (~)。 React Native 应该扩展它。

<Image
   style=width:100, height:100
   source=uri: '~/Documents/myAwesomeSubDir/my.png', scale:1
/> 

【讨论】:

非常感谢。这节省了我的时间

以上是关于React Native iOS 从应用程序 Documents 文件夹中读取图像的主要内容,如果未能解决你的问题,请参考以下文章

React-Native 远程调试器无法在 iPhone 上运行

将现有的移动应用程序从 Android Native(Java) 和 IOS Native(Swift) 迁移到 React Native

从 iOS 上的 React Native 应用程序访问 NSUserDefaults

如何在 React Native 中将事件从 iOS 发送到 javascript

React Native iOS 从应用程序 Documents 文件夹中读取图像

从 iOS 中的共享按钮启动应用程序 - Objective C 和 React Native