我希望用另一个应用程序打开一个文件(本地存储在我的应用程序中)。
目前,我正在使用 openURL(有一个专用的 url 方案),如果我使用托管在互联网上的文件,它可以正常工作,但我想使用本地文件:a)它可以离线工作 b)很多我的用户不在小区覆盖范围内或在国际漫游的时间
到目前为止我所尝试的:我没有任何运气告诉 openURL 使用本地文件,我尝试了一些方法,但它们都是这样的
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"ext"];
NSURL *fileURL = [NSURL fileURLWithPath:filePath];
[[UIApplication sharedApplication] openURL:fileURL];
还
NSURL *fileURL = [[NSBundle mainBundle] URLForResource: @"test" withExtension:@"ext"];
[[UIApplication sharedApplication] openURL:fileURL];
还手动使用具有 localhost/ 和 file:// 和 var/mobile 等路径的不同变体的字符串
没有任何效果(无论如何对我来说)
所以,我环顾四周,遇到了UIDocumentInteractionController
我可以使用 UIDocumentInteractionController 让用户使用其他应用程序打开我的本地文件 - 但是它总是提供其他应用程序的多个选项以供使用,例如,其他应用程序之一可以是“Dropbox”。
我不想让用户下载(或从技术上上传)我的文件的副本以供他们以其他方式使用。它包含我不希望如此容易获得的数据。
当我的预期应用程序(不是我制作的)打开文件时,它不允许任何形式的保存或访问原始数据。
我意识到,通过将文件包含在我的应用程序中,任何认真想要获得它的人都可以,我只是不想闪现一个大菜单,说“如果你想要自己的副本从中制作衍生作品,就在这里”
理想情况下,我可以使用 openURL 但我认为这是因为其他应用程序没有响应的“沙箱” - 在 Android 中,我使用 mode_world_readable 将文件声明为其他应用程序可读(因此将其放在沙箱之外,它不允许其他应用程序对其进行写入,只需读取)-iOS 是否也可以这样做?
否则,如果我可以强制 UIDocumentInteractionController 使用特定的应用程序而不显示菜单 - 那也很好。
抱歉,阅读时间长,任何帮助表示赞赏。
编辑:我刚刚收到 Apple 技术支持的答复,他们告诉我这目前是不可能的(就在 iOS 6 发布之后)