因为从广州来到了北京,换了工作,所以现在公司要求做的东西跟之前不太一样。做的一款办公软件,这里面就包括对微软doc文档,ppt文档,xls文档。Android端的我已经做了一个版本,然后是非常简单的打开,没有编辑功能。现在我要做的就是IOS版本。所有的东西都是自己从0开始的,记录下来,方便自己,也给后来者一些提示。

Office文件的IOS-UTI支持

文件格式 UTI type
doc com.microsoft.word.doc
docx org.openxmlformats.wordprocessingml.document
ppt com.microsoft.powerpoint.ppt
pptx org.openxmlformats.presentationml.presentation
xls com.microsoft.excel.xls
xlsx org.openxmlformats.spreadsheetml.sheet
pdf com.adobe.pdf

如果需要适配以上的文件类型,可以直接将下面的代码复制到info.plist文件中的dict标签中

<key>CFBundleDocumentTypes</key><array><dict><key>CFBundleTypeName</key><string>OFFICE Document</string><key>LSHandlerRank</key><string>Owner</string><key>LSItemContentTypes</key><array><string>com.microsoft.word.doc</string><string>com.microsoft.powerpoint.ppt</string><string>com.microsoft.excel.xls</string><string>com.adobe.pdf</string><string>org.openxmlformats.wordprocessingml.document</string><string>org.openxmlformats.presentationml.presentation</string><string>org.openxmlformats.spreadsheetml.sheet</string><string>org.oasis-open.opendocument.text</string></array></dict></array>

参考网站

打开文件

其他的应用(如QQ,微信等)分享过来的文件,在自己的应用中打开,这时候有一个跳转的过程,那么当跳转到第二个页面的时候,我们需要让他可以以一种打开新文件的方式展示
具体实现代码
在AppDelegate.swift文件中,重写application方法,这里注意是使用的是

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool 

全局代码

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {print("文件路径是 \(url)")let vc: DocumentViewController = DocumentViewController(filePath: url)//跳转到打开文件的页面UIViewController.currentViewController()?.navigationController?.pushViewController(vc, animated: true)return true}

扩展方法

//获取当期页面的presentview
extension UIViewController {class func currentViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {if let nav = base as? UINavigationController {return currentViewController(base: nav.visibleViewController)}if let tab = base as? UITabBarController {return currentViewController(base: tab.selectedViewController)}if let presented = base?.presentedViewController {return currentViewController(base: presented)}return base}
}

IOS打开Micosoft文档相关推荐

  1. iOS API离线文档下载和查阅

    [问题描述] iOS API 离线文档更方便查阅 [问题分析] 1.获取URL地址     通过Xcode查看,Xcode-->Preference-->Documentation--&g ...

  2. 多端手机网页中直接打开PDF文档

    1. 需求 接到一个需求,客户想在手机端的网页里直接能查看到 pdf 文档,一开始我的思路是加一个<a>标签让他跳转链接到 pdf 文档的地址,经过测试发现在 IOS 系统中,网页跳转之后 ...

  3. WORD2007只可以打开一个文档,且打开后文本有时出现不可 编辑情况

    Word2007打开一个文档后,想再打开另一个文档,你双击它却没反应,打不开,也就是说只能打开一个文档,第二个是打不开了,而且有时鼠标不能对文档中文本进行选中编辑操作 卸载过原来的版本,重新安装,问题 ...

  4. VS2010 出现打开关联文档错误的解决方案

    直接给过程: 开始->所有程序->Microsoft Visual Stdio 2005->Visual Stdio Tools->Visual Stdio 2005 命令提示 ...

  5. 『转载』在vs2008(2005)winform中,打开office文档

    最近在准备毕业设计,这个阶段应该是可行性分析阶段吧,在查阅相关的技术问题,由于涉及office,所以今天写下这篇文章,以备日后查阅.这篇文章也是参阅msdn而来的,我在这里提供了实例和下载,方便大家调 ...

  6. 怎么查看计算机一共多少文档,不打开Word文档如何查看文章有几页 -电脑资料

    关于这个命题,似乎有点悬了! 当我们面对一大堆文档的时候,如果想查看一下每一篇文档到底有多少页的时候? 平时您是不是这样做的呢?一篇文档一篇文档的打开,之后通过使用插入页码的方法在文档中插入页码,之后 ...

  7. python打开word后再关闭再打开出错_用Python写了个程序调用word,运行完后再手动打开word文档就变慢了,这是为啥?...

    公司归档文件比较麻烦,于是用Python写了个程序自动归档,运行无错误.但是运行完后问题就来了,自己手动打开word文档时速度变得奇慢,打开一个文档需要1~2min,请各位同仁帮我看看.下为源代码 # ...

  8. 让IE浏览器提示下载或直接打开word文档

    核心提示:点击一个指向.doc类型的文件后,怎样不直接在IE里打开,而是弹出一个对话框提示用户想下载还是打开.让IE浏览器提示下载或直接打开word文档 点击一个指向.doc类型的文件后,怎样不直接在 ...

  9. HbuilderX 左侧项目栏文件位置和打开的文档同步(对应显示) - 设置篇

    HbuilderX能像Hbuilder一样,左侧的项目栏文件位置和打开的文档同步,对应显示 设置 · 截图演示:(按图设置即可完成.) 以上就是关于" HbuilderX左侧项目栏文件位置和 ...

最新文章

  1. .NET Core 6.0之读取配置文件
  2. 【错误归纳】selenium.common.exceptions.WebDriverException: Message: unknown error
  3. php 操作数组 (合并,拆分,追加,查找,删除等)
  4. Windows操作系统下查看日志
  5. 功能强大的被动开源情报自动化侦察框架
  6. 理解C#泛型运作原理
  7. Java笔记-使用ServerSocket构建HTTP服务器
  8. 计算机过滤器的作用,14种功能强大的Wireshark过滤器介绍
  9. Android学习之调用系统相机实现拍照功能
  10. [NOIp2008] 双栈排序 (二分图染色 + 贪心)
  11. 一个高性能RPC框架的连接管理
  12. 已知X随机变量的情况下,求解Y=G(x)的概率分布函数(只考虑单调的情况)
  13. python实现阿拉伯数字和罗马数字的互相转换
  14. mysql show profile_MySQL show profile使用说明
  15. pcb天线和纯铜天线_各种PCB板载天线以及PCB设计的要点是什么
  16. 【个人学习记录】RoboWare Studio安装使用
  17. 百度地图开发 —— 去除百度地图左下角Logo
  18. 关于项目上线(新浪云)
  19. 阿里云轻量服务器怎么设置密码?
  20. 腾讯云GPU服务器价格表出炉新鲜的

热门文章

  1. Oracle10g安装包
  2. 蓝桥杯 二阶魔方旋转 模拟
  3. kubernetes原生ci/cd工具tekton版本升级至v0.18.1
  4. 【Python网络蜘蛛】:基础 - 爬虫的基本原理
  5. coredata 详解
  6. Redis6简单安装
  7. RealsenseD415/D435深度相机常用资料汇总
  8. 停车场设计软件测试,停车场车位视频检测系统设计
  9. python编程:从入门到实践(持续更新)
  10. pywin32应用——python在windows下系统编程初步