我希望我的应用程序从files.app应用程序接收.wav文件。我在Info.plist的Document Types数组中添加了com.microsoft.waveform-audio,我的应用程序在共享操作表中显示为“ Open In X”(不是Copy In)。我想实际复制文件,而不是在原地打开文件,并且操作系统不允许我复制这些文件(错误代码257)。我正在尝试将文件复制到UIApplicationLaunchOptionsURLKey路径中,但没有成功。
launchOptions字典在applicationDidLaunch WithOptions中也包含RequireOpenInPlace = 1。
如何让其他应用使用UIActivityViewController复制文件以进行挖掘?
答案 0 :(得分:1)
如果要“就地”打开文件(而不是复制文件),则应使该进程可以访问url引用的资源。
在访问文件之前尝试调用url.startAccessingSecurityScopedResource()
。然后,您应该可以复制文件了。
当您不再需要文件时,别忘了用url.stopAccessingSecurityScopedResource()
平衡通话。
参考:https://developer.apple.com/documentation/foundation/nsurl#1663809
编辑:
另一个解决方案可能是在Info.plist中将LSSupportsOpeningDocumentsInPlace
设置为NO
。然后,您将始终在共享表中看到“复制到XYZ”,因此系统会将文件复制到应用程序沙箱中的“文档/收件箱”文件夹中。