共享文件 导入导出 导入的文件夹放在Document下面的Inbox文件夹里,Documents/Inbox:可被外部程序访问的文件。APP可读、可删除,但不能创建和修改。会被iTunes备份。
1 UIFileSharingEnabled 设置为YES
并设置如下的格式告诉系统你能处理这个类型的文件
2 设置info.plist里添加可以读取PDF功能 如图所示
3 当第三方应用选择你的程序后,回自动触发– application:openURL:sourceApplication:annotation:. 你要做的就是在该方法里实现打开这个PDF即可:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options{
//外部copy过来的文件预览
if (url != nil && [url isFileURL]) {
_viewController = [[ShowCopyFilesController alloc]init];
[[self ViewController] presentViewController:_viewController animated:YES completion:^{
[_viewController handleDocumentOpenURL:url];
}];
}
return YES;
}
- (void)handleDocumentOpenURL:(NSURL *)url {
NSString *urlStr = url.absoluteString;
NSString *lastName =[[urlStr lastPathComponent] lowercaseString];
if ([lastName containsString:@".txt"])
{
NSData *attachmentData = [NSData dataWithContentsOfURL:url];
//txt分带编码和不带编码两种,带编码的如UTF-8格式txt,不带编码的如ANSI格式txt
//不带的,可以依次尝试GBK和GB18030编码
NSString* aStr = [[NSString alloc] initWithData:attachmentData encoding:NSUTF8StringEncoding];
if (!aStr) {
//用GBK进行编码
aStr=[[NSString alloc] initWithData:attachmentData encoding:0x80000632];
}
if (!aStr) {
//用GBK编码不行,再用GB18030编码
aStr=[[NSString alloc] initWithData:attachmentData encoding:0x80000631];
}
//通过html语言进行排版
NSString* responseStr = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {padding:0 20px;font-size: %f;}\n"
"</style> \n"
"</head> \n"
"<body>%@</body> \n"
"</html>",20.0,aStr];
[_webView loadHTMLString:responseStr baseURL:nil];
}
else
{
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView loadRequest:request];
}
[_webView stringByEvaluatingJavaScriptFromString:@"document.body.style.zoom = 5.0;"];
[_webView setUserInteractionEnabled:YES];
}
4 但如果你要打开自定义的文件格式则需要告诉系统你的自定义格式 UIExportedTypeDeclarations 并新增一个item 可能你会问为什么PDF不用设置这个,因为系统已经默认支持PDF所以不用在设置一个PDF对应的UIExportedTypeDeclaration。 如图所示
5 分享文件的属性设置可以在这里查看
https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
6 文件的复制、删除,请看下面的这篇文章
https://www.jianshu.com/p/14bb4bbc6ed2