当你的app需要展示一些文件,但是你的app本身不能打开的或者需要提供更多操作方式时,我们就需要调用别的app来打开这个文件,再iOS上这怎么操作呢,Apple在iOS 3.2以后提供了一个名为UIDocumentInteractionController的东西来帮我们完成这件事。详见官方文档Document Interaction Programming Topics for iOS
听起来高大上,实际用起来则很方便。
首先
在.h文件中添加上UIDocumentInteractionControllerDelegate
然后
在.m文件中,需要弹出Open-In的地方写上如下代码
UIDocumentInteractionControlle* documentController = [UIDocumentInteractionControlle interactionControllerWithURL:[NSURL fileURLWithPath:unEncodingURL]];
documentController.delegate=self;
documentController.UTI=@"com.microsoft.word.doc";
[documentController presentOpenInMenuFromRect:CGRectMake(500,20,100,100) inView:self.view animated:YES];
上述代码中UTI则是标识文件类型,详情和可选值请参考 官方文档System-Declared Uniform Type Identifiers
最后
通过UIDocumentInteractionControllerDelegate来处理不同的状态即可
注意:该功能需要真机调试,并需要手机上有支持该类型文件的app,否则需要自行给出提示