1、首先在自己App的info.plist中注册可用类型

    <key>CFBundleDocumentTypes</key><array><dict><key>CFBundleTypeName</key><string>com.myapp.common-data</string><key>LSItemContentTypes</key><array><string>com.microsoft.powerpoint.ppt</string><string>public.item</string><string>com.microsoft.word.doc</string><string>com.adobe.pdf</string><string>com.microsoft.excel.xls</string><string>public.image</string><string>public.content</string><string>public.composite-content</string><string>public.archive</string><string>public.audio</string><string>public.movie</string><string>public.text</string><string>public.data</string></array></dict></array>
.pptx:          org.openxmlformats.presentationml.presentation
.docx:          org.openxmlformats.wordprocessingml.document
.xlsx:          org.openxmlformats.spreadsheetml.sheet

添加完后,保存,运行程序,在QQ中选择一个文件,选择用其他应用打开,就会发现我们的app

点击之后,会调转到自己的应用,并调用以下方法

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation;

通过返回的URL可知,分享过来的文件保存在了Document/Inbox文件夹下

之后就可以预览我们分享过来的文件了。

获取所有文件

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Inbox"];NSFileManager *fileManager=[NSFileManager defaultManager];self.sourceArr = [fileManager subpathsAtPath:path];

点击进行预览

    NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Inbox"] stringByAppendingPathComponent:self.sourceArr[indexPath.row]];NSURL *url = [NSURL fileURLWithPath:path];QLPreviewController *vc = [QLPreviewController new];self.filePath = url;vc.delegate = self;vc.dataSource = self;[self presentViewController:vc animated:YES completion:nil];
-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller{return 1;}-(id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index{return self.filePath;}

iOS将文件在自己App中打开相关推荐

  1. 为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开?

    为什么matlab生成的exe文件只能在matlab中打开,在电脑的其他地方打不开? 2014-11-09 20:20147****3349 | 浏览 448 次  操作系统 在同一个电脑里,在mat ...

  2. python 打开excel并在屏幕上呈现_excel-检查文件是否在Python中打开

    excel-检查文件是否在Python中打开 在我的应用程序中,我写入一个Excel文件. 写入后,用户可以通过打开文件来查看文件. 但是,如果用户忘记了在进一步写入之前关闭文件,则会出现警告消息. ...

  3. android点击另一个app,Android 怎么从一个APP中打开另外一个APP

    Android 如何从一个APP中打开另外一个APP 众所周知,在一个APP内部,从一个页面跳转到另外一个页面是使用startactivity函数来实现的. 同样的,对于应用之间的跳转也是如此的.应用 ...

  4. uniapp 微信小程序地图,在高德app、腾讯app、百度app、苹果地图app 中打开

    一.效果: 点击图片一后,会跳转到图片二页面(无需自己写图片二页面,小程序会自动打开此页面) PS:示例图中(坐标)为"天安门".( <map> 可添加多个坐标点 ) ...

  5. 操作无法完成因为文件已在syayem中打开怎么处理删除文件。

    情况一:如果是在Win10系统下(尤其是想要删除镜像文件时),删除文件时出现"操作无法完成,因为文件已在system中打开 "这样的情况是.此时需要打开"计算机" ...

  6. 在自己的app中打开淘宝

    需求:在app中打开淘宝客户端,包括打开店铺和商品 1)打开商品: Intent intent = new Intent(); intent.setAction("android.inten ...

  7. 操作无法完成,因为该文件已在system中打开

    一 .操作无法完成,因为该文件已在system中打开 1 同时按下键盘上的Ctrl+Shift+ESC组合键,打开"任务管理器", 2 切换到"性能"选项卡下, ...

  8. 解决:利用IDEA的右上角图标打开jsp文件,在浏览器中打开的是“本机文件路径”,而不是“http路径”问题

    解决:利用IDEA的右上角图标打开jsp文件,在浏览器中打开的是"本机文件路径",而不是"http路径"问题 一·问题描述: 二·错误原因: 三·解决方法: 方 ...

  9. 【win10】操作无法完成,因为文件已在XXX中打开

    一. 问题描述 小编在更新使用的某软件时(ps:此软件的更新只能重新下载一遍),明明已经将所有打开的此软件的.exe都关闭了,最后想要修改.exe名称时,却提示操作无法完成,因为文件已在XXX中打开. ...

最新文章

  1. python大数据结课报告_2020知到大数据分析的PYTHON基础结课答案
  2. Pytorch中图像预处理相关函数
  3. 指针,指针函数,指针数组的区别
  4. 测试必备:单元测试测试类,以帮助匿名管理调查的类为例详解--白盒测试
  5. Android 大位图加载
  6. HDU 1087 Super Jumping! Jumping! Jumping!【最大递增子段和】
  7. 【ACL2020】基于语境的文本分类弱监督学习
  8. RC电路延时公式推导
  9. 数据分析必备43个Excel函数
  10. aptana php,aptana 3 + xdebug php
  11. 基于信心上界蒙特卡洛搜索树(UCT)实现四子棋
  12. python培训班出来能找到工作吗-Python培训班出来好找工作吗?
  13. 吃透MIPI接口,你必须了解它这三种PHY规范的区别
  14. 深度学习平台的分布式实现综述
  15. android手机红外代码HAL,Android 红外遥控器适配
  16. python split()函数
  17. 服务器中使用Top命令后,参数解释
  18. 浅谈Peer Review
  19. org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘****‘
  20. ActivePerl概述

热门文章

  1. better-scroll刷新后才能滑动的解决方案
  2. 如何处理异常? catch Exception OR catch Throwable
  3. 使用CGlib出现java.lang.NoClassDefFoundError: org/objectweb/asm/Type异常
  4. 我如何进入Docker容器的shell?
  5. 如何在C#中用单个空格替换多个空格?
  6. 如何以编程方式退出WPF应用程序?
  7. java 项目使用 ajaxfileupload
  8. 函数式编程语言时代已经来临
  9. win2008 域服务器搭建教程
  10. Phantom.js维护者退出,项目的未来成疑