是否可以通过内置应用程序将文件保存在沙箱之外?
Posted
技术标签:
【中文标题】是否可以通过内置应用程序将文件保存在沙箱之外?【英文标题】:Is it possible to save files outside of the sandbox via the built-in apps? 【发布时间】:2012-05-15 17:29:54 【问题描述】:如果我有一个包含文件链接的UIWebView
,那么是否可以将这些文件保存到应用程序沙箱之外的磁盘上?
是的,我知道一个应用程序无法访问其沙箱之外的文件系统,但保存过程可以由任何可以处理文件类型的应用程序完成吗? - 例如,如果它是一个音频文件,我的应用程序是否可以启动 QuickTime,将文件(或文件 url)传递给它,然后用户可以通过 QuickTime 应用程序保存文件,并将其保存在音频文件的适当位置?
【问题讨论】:
QuickTime 不是 ios 上的应用程序。你到底想做什么?您可能想查看资产库框架。 这只是一个例子,我在 UIWebView 中加载页面,其中可能包含指向音频、视频、照片等文件的链接,甚至可能是 pdf、日历等。并且需要将它们保存到磁盘。 【参考方案1】:应用仅限于在自己的沙盒中保存数据。你似乎已经承认了。
您可以让一个应用程序启动另一个应用程序,理论上这可以允许第二个应用程序保存数据,但在它自己的沙箱中。你也提到了这一点。
实际上,您已经回答了自己的问题。
【讨论】:
【参考方案2】:可以将图片写入到沙盒外的相册中。
UIImage* image = [UIImage imageNamed:@"picture_of_my_cat.png"];
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
为了从 UIWebView(javascript 到目标 C)中获取数据,您可以继承 NSURLProtocol
并使用 jQuery.ajax
。
【讨论】:
以上是关于是否可以通过内置应用程序将文件保存在沙箱之外?的主要内容,如果未能解决你的问题,请参考以下文章