iOS-为自己App添加文件支持类型

用自己的App打开其他App不支持的文件如下效果图:

Paste_Image.png

上图用到的界面用到的类是 UIDocumentInteractionController

iOS添加支持打开的文件类型步骤两种方式为1、2如下图

Paste_Image.png
Paste_Image.png

在自己App中获取文件

如下代码:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSLog(@"url = %@",url);
    if (url != nil) {
        NSString *path = [url absoluteString];
        path = [self URLDecodedString:path];
        NSMutableString *string = [[NSMutableString alloc] initWithString:path];
        if ([path hasPrefix:@"file://"]) {
            [string replaceOccurrencesOfString:@"file://" withString:@"" options:NSCaseInsensitiveSearch  range:NSMakeRange(0, path.length)];
        }
        
        //获取在存储在本地的文件路径就可以在自己需要显示的页面加载文件显示了
    }
    
    return YES;
}
//当文件名为中文是,解决url编码问题
-(NSString *)URLDecodedString:(NSString *)str
{
    NSString *decodedString=(__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (__bridge CFStringRef)str, CFSTR(""), CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
    NSLog(@"decodedString = %@",decodedString);
    return decodedString;
}

官方文档地地址及部分截图

https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近公司有这样需求:当用户用微信,qq或者其他app接Word,Ecxel,PDF文件时,选择打开方式时,自己的a...
    YannChee阅读 8,803评论 0 5
  • 到这个月,参加工作正好一年,期间忙于各种需求,虽说业务熟悉了,但是技术方面还是有待提高,尤其对证书那一块不太熟悉,...
    等开会阅读 5,907评论 0 12
  • 《满江红·酒醉天涯》 刹那芳华,滴血泪,苍苍朽木。忍叹息,是非成败,孰能辨分。三十年纵横谁抗?八万夜雪月风光。更无...
    庆州山人阅读 2,350评论 3 1
  • 每次说道安全感这个词,脑子里总会飞出弹幕“还用说吗?是钱呀!” 是呀,有了钱就不会因为眼霜很贵,忍着不敢流泪了;有...
    胭脂飞飞阅读 3,203评论 2 1
  • 小城忽下千层雪,一夜飞花都冻绝。恼人还是晚来风,入梦依然檐上铁。 红楼推出窗前月,十二栏杆都拍彻。为谁题得数行诗,...
    倚剑白云天阅读 2,939评论 0 1