将文件从 iOS 应用扩展保存到包含应用

Saving files from an iOS app extension to the containing app

我正在努力添加使用共享按钮的功能,以允许用户保存文件以用于我的主应用程序。需要支持多种文件类型(图片、视频、音频、pdf等)。

一般用例是: 用户使用标准相机应用程序拍照或使用语音备忘录应用程序录音。 用户单击共享按钮并从共享列表中选择我的扩展。 对话框打开,让用户有机会给出文件的描述。 文件保存到我的主应用程序(包含应用程序)以后可以访问和处理它的位置。

我已经到了系统提示我共享文件的地步,但我无法找到一个位置来成功保存到我的主应用程序以后可以读取的位置。这可能吗?有没有更好的方法来处理这种情况?

我目前正在使用 Xamarin 执行此操作,因此不支持调试(并且日志记录很少)。如果有人在 Objective C 中有答案,那至少会帮助我指明正确的方向。

Xamarin 为 iOS 创建共享扩展的指南:http://developer.xamarin.com/guides/ios/platform_features/introduction_to_extensions/

您需要做一些事情。

首先,您的应用和您的应用扩展应该属于同一个应用组:

https://developer.apple.com/library/prerelease/ios/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW19

然后你可以像这样访问共享存储:

var groupUrl = NSFileManager.DefaultManager.GetContainerUrl ("whosebug.com.mygroup")

现在您可以访问groupUrl指向的目录中的文件了。