zoukankan      html  css  js  c++  java
  • 【iOS开发每日小笔记(十三)】使用UIDocumentInteractionController 打开ibooks文档的注意点

    这篇文章是我的【iOS开发每日小笔记】系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧。它们可能会给用户体验、代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下。90%的作用是帮助自己回顾、记忆、复习。

    大约两年多前,我曾尝试自己写一个程序,用来解析Word文档。当时满腔热血,认为只要是把xml各种标签一一对应解析就好了(当时还不知道有CoreText这档子东西)。后来发现自己实力不够,在解析了图片、文字、段落、音频、视频后,留了个烂尾项目。

    任何事物都是需要坚持才能做好的,也许我当年一直理想地坚持做解析,现在说不定已经可以发布自己的"WPS"了。好了,还是不YY,开始记录今天的笔记。

    今天遇到一个奇葩的问题,首先说明一下,我们现在打开各种格式的文档,都是使用UIDocumentInteractionController。采用“预览”的方式,比如html、txt、word、excel等。这些都是可以完美打开的。但是今天我却发现,UIDocumentInteractionController在某种情况下无法打开本地ibooks文档!

    来看一下我的问题代码:

    1         UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:fileUrl];
    2         controller.delegate = self;
    3         [controller presentPreviewAnimated:YES];

    用以上代码,可以直接present一个“预览”(preview)界面,对html、txt、word、excel都是良好支持的,但是ibooks却不支持!

    如果想打开ibooks,只能通过以下方法:

    1         UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:fileUrl];
    2         controller.delegate = self;
    3         [controller presentOptionsMenuFromRect:rect inView:self.view animated:YES];

    这样,首先弹出pop,这个pop里面会列出可能支持的第三方应用,其中包含了设备里安装的ibook app。点击它,才会跳转到ibook app中,自动加载本地fileUrl地址的ibooks文件。

    导致这样效果的原因,我觉得是因为iOS中UIDocumentInteractionController的“预览”功能,不支持ibooks。而UIDocumentInteractionController只支持使用第三方app(也就是iOS自己的ibook app)来打开ibooks文档,因此只能使用“先pop,再选择打开”的方式来查看ibooks文档。这样做的劣势,就是必须离开自己的应用,跳转到ibooks中。

  • 相关阅读:
    ArcEngine 9.3 学习笔记(十一):地图输出(Printer类,PageLayoutControl控件打印出图,栅格格式文件输出,矢量格式文件输出)
    SpringBoot动态修改Logger的日志级别
    SpringBoot整合SpringDataJpa + QueryDsl以及使用案例
    HPA 自动水平伸缩(基于CPU)
    k8s dashboard:v2.0.5
    PHP debug_backtrace的胡思乱想 豆浆油条
    PHP命名空间(Namespace)初探 豆浆油条
    sphinx全文检索之PHP使用教程 豆浆油条
    sphinx中文分词搜索coreseek windows下安装与基本使用简介 豆浆油条
    PHP闭包(Closure)初探 豆浆油条
  • 原文地址:https://www.cnblogs.com/pigpigDD/p/4012222.html
Copyright © 2011-2022 走看看