主要是使用 ?UIDocumentInteractionController ?類 ? 并實(shí)現(xiàn)?UIDocumentInteractionControllerDelegate 的代理方法
\@interfaceHNDownFileViewController ()
@property (nonatomic, strong) UIDocumentInteractionController*documentInteractionController;@end- (void)viewDidLoad {
[super viewDidLoad];//url 為需要調(diào)用第三方打開的文件地址NSURL *url = [NSURL fileURLWithPath:_dict[@"path"]];
_documentInteractionController=[UIDocumentInteractionController
interactionControllerWithURL:url];
[_documentInteractionController setDelegate:self];
[_documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
}
\需要在真機(jī)上調(diào)試株旷,例子中打開的是 ?doc文件扇雕,如果手機(jī)上裝了WPS或者office套件吓肋,就能調(diào)用這些應(yīng)用打開签孔。
2.第三方APP調(diào)用自己的APP地熄,打開文件
在info.plist中添加如下代碼
123CFBundleTypeName4com.myapp.common-data5LSItemContentTypes67com.microsoft.powerpoint.ppt8public.item9com.microsoft.word.doc10com.adobe.pdf11com.microsoft.excel.xls12public.image13public.content14public.composite-content15public.archive16public.audio17public.movie18public.text19public.data202122
這在系統(tǒng)中添加了參數(shù)华临,如果有以上類型的文件,第三方應(yīng)用可以調(diào)用我們的APP進(jìn)行操作端考。
在第三方調(diào)用我們的APP后雅潭,會(huì)調(diào)用如下方法
1- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation2{3if(self.window) {4if(url) {5NSString *fileNameStr =[url lastPathComponent];6NSString *Doc = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/localFile"] stringByAppendingPathComponent:fileNameStr];7NSData *data =[NSData dataWithContentsOfURL:url];8[data writeToFile:Doc atomically:YES];9[XCHUDTool showOKHud:@"文件已存到本地文件夾內(nèi)"delay:2.0f];10}11}12returnYES;13}
url 就是第三方應(yīng)用調(diào)用時(shí)文件的沙盒地址,
@"Documents/localFile" 表示本地文件夾目錄
sourceApplication 是調(diào)用我們APP的第三方應(yīng)用是誰
我們把url傳到我們需要用的界面
可以使用路徑查看保存到本地的文件