IOS打开Micosoft文档
因为从广州来到了北京,换了工作,所以现在公司要求做的东西跟之前不太一样。做的一款办公软件,这里面就包括对微软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 |
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文档相关推荐
- iOS API离线文档下载和查阅
[问题描述] iOS API 离线文档更方便查阅 [问题分析] 1.获取URL地址 通过Xcode查看,Xcode-->Preference-->Documentation--&g ...
- 多端手机网页中直接打开PDF文档
1. 需求 接到一个需求,客户想在手机端的网页里直接能查看到 pdf 文档,一开始我的思路是加一个<a>标签让他跳转链接到 pdf 文档的地址,经过测试发现在 IOS 系统中,网页跳转之后 ...
- WORD2007只可以打开一个文档,且打开后文本有时出现不可 编辑情况
Word2007打开一个文档后,想再打开另一个文档,你双击它却没反应,打不开,也就是说只能打开一个文档,第二个是打不开了,而且有时鼠标不能对文档中文本进行选中编辑操作 卸载过原来的版本,重新安装,问题 ...
- VS2010 出现打开关联文档错误的解决方案
直接给过程: 开始->所有程序->Microsoft Visual Stdio 2005->Visual Stdio Tools->Visual Stdio 2005 命令提示 ...
- 『转载』在vs2008(2005)winform中,打开office文档
最近在准备毕业设计,这个阶段应该是可行性分析阶段吧,在查阅相关的技术问题,由于涉及office,所以今天写下这篇文章,以备日后查阅.这篇文章也是参阅msdn而来的,我在这里提供了实例和下载,方便大家调 ...
- 怎么查看计算机一共多少文档,不打开Word文档如何查看文章有几页 -电脑资料
关于这个命题,似乎有点悬了! 当我们面对一大堆文档的时候,如果想查看一下每一篇文档到底有多少页的时候? 平时您是不是这样做的呢?一篇文档一篇文档的打开,之后通过使用插入页码的方法在文档中插入页码,之后 ...
- python打开word后再关闭再打开出错_用Python写了个程序调用word,运行完后再手动打开word文档就变慢了,这是为啥?...
公司归档文件比较麻烦,于是用Python写了个程序自动归档,运行无错误.但是运行完后问题就来了,自己手动打开word文档时速度变得奇慢,打开一个文档需要1~2min,请各位同仁帮我看看.下为源代码 # ...
- 让IE浏览器提示下载或直接打开word文档
核心提示:点击一个指向.doc类型的文件后,怎样不直接在IE里打开,而是弹出一个对话框提示用户想下载还是打开.让IE浏览器提示下载或直接打开word文档 点击一个指向.doc类型的文件后,怎样不直接在 ...
- HbuilderX 左侧项目栏文件位置和打开的文档同步(对应显示) - 设置篇
HbuilderX能像Hbuilder一样,左侧的项目栏文件位置和打开的文档同步,对应显示 设置 · 截图演示:(按图设置即可完成.) 以上就是关于" HbuilderX左侧项目栏文件位置和 ...
最新文章
- .NET Core 6.0之读取配置文件
- 【错误归纳】selenium.common.exceptions.WebDriverException: Message: unknown error
- php 操作数组 (合并,拆分,追加,查找,删除等)
- Windows操作系统下查看日志
- 功能强大的被动开源情报自动化侦察框架
- 理解C#泛型运作原理
- Java笔记-使用ServerSocket构建HTTP服务器
- 计算机过滤器的作用,14种功能强大的Wireshark过滤器介绍
- Android学习之调用系统相机实现拍照功能
- [NOIp2008] 双栈排序 (二分图染色 + 贪心)
- 一个高性能RPC框架的连接管理
- 已知X随机变量的情况下,求解Y=G(x)的概率分布函数(只考虑单调的情况)
- python实现阿拉伯数字和罗马数字的互相转换
- mysql show profile_MySQL show profile使用说明
- pcb天线和纯铜天线_各种PCB板载天线以及PCB设计的要点是什么
- 【个人学习记录】RoboWare Studio安装使用
- 百度地图开发 —— 去除百度地图左下角Logo
- 关于项目上线(新浪云)
- 阿里云轻量服务器怎么设置密码?
- 腾讯云GPU服务器价格表出炉新鲜的