【发布时间】:2018-09-23 01:00:00
【问题描述】:
我们使用 React Native 开发了一个应用程序,它可以下载并在内部查看文档,但要查看 PowerPoint 文件,它会将文件保存到其文档目录并使用外部应用程序查看文件(打开系统对话框以选择哪个应用程序)。
它在 iOS 10 中运行良好,但在 iOS 11 中它突然停止运行。我收到“没有这样的文件或目录”错误。我猜这是因为安全权限。我尝试在应用程序的 Info.plist 中添加 UISupportsDocumentBrowser 键、UIFileSharingEnabled 和 LSSupportsOpeningDocumentsInPlace 键,并将它们设置为 true 为 recommended by Apple 以访问我的应用程序的文档目录,但这并没有解决问题。我认为这些密钥可能仅适用于访问应用程序文档的用户,而不是其他应用程序。
我们使用react-native-document-controller 传递文件,但是当它将文档路径传递给另一个应用程序以打开时,我们从控制器代码中收到The file couldn’t be opened because there is no such file 错误。该文件在设备上,因为如果应用程序在内部或在对话框中呈现文件,我选择将其保存到我的文件夹而不是查看它,那工作正常。但是,我们尝试打开文件的所有应用程序都不能这样做。
我还需要做什么才能使外部应用程序能够访问我的应用程序的文档目录并打开文件吗?我不应该将文件保存到我的应用程序的文档目录吗?
较长的错误信息如下(编辑删除路径中的应用ID和文件的实际名称):
无法获取文件大小 文件:/var/mobile/Containers/Data/Application/.../Documents/filename.pptx -- file:///: Error Domain=NSCocoaErrorDomain Code=260 "文件“filename.pptx”无法打开,因为没有这样的文件 文件。” UserInfo={NSURL=file:/var/mobile/Containers/Data/Application/.../Documents/filename.pptx -- file:///, NSFilePath=/file:/var/mobile/Containers/Data/Application/.../Documents/filename.pptx, NSUnderlyingError=0x1c08429d0 {错误域=NSPOSIXErrorDomain 代码=2 "没有这样的文件或目录"}}
【问题讨论】:
标签: ios react-native ios11