首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为iPad/iPhone应用程序实现ePub阅读器

问如何为iPad/iPhone应用程序实现ePub阅读器
EN

Stack Overflow用户
提问于 2012-09-03 13:37:49
回答 4查看 11.3K关注 0票数 8

我想为iOS平台实现一个ePub阅读器。请建议任何开放源代码的翻书动画,书签,字体大小定制和单页查看(没有滚动条)。

EN

回答 4

Stack Overflow用户

发布于 2012-09-03 15:05:55

正如前一篇文章所指出的,没有任何API可以在给定ePub的情况下直接显示它--您需要做一些工作:

  1. 解压缩ePub
  2. 读取清单文件和元数据文件以查找要显示的xhtml文档
  3. 使用解压后的文档UIWebView

的URL将xhtml文档加载到中

如果您希望确保文档不会访问网络,那么您将需要实现一个定制的NSURLProtocol并自己处理文件的字节,因为file:///允许跨域访问。

这将很好地显示内容,但“难”的部分是在文档之间移动(通常表示整个章节)。这是iBooks和其他应用程序为您完成的工作。

注意:为了让UIWebView正确显示内容,在使用file:/// urls时,必须确保文件具有.xhtml扩展名。如果您实现了自己的URL协议处理程序,则需要确保协议处理程序为xhtml返回正确的xml内容类型,即:

应用程序/xhtml+xml

票数 4
EN

Stack Overflow用户

发布于 2013-03-12 08:02:20

参考ePub打包格式和开源阅读器:

票数 4
EN

Stack Overflow用户

发布于 2014-05-13 17:33:17

​

尝试以下步骤:

​

源代码: AePubReader

Implementation:

第1步:使用UIWebView创建视图

第2步:下载EPUB文件并将其导入到项目中

步骤3:将EPUB文件解压缩到应用程序的documents文件夹中的一个子目录中。

第4步:解析目录META-INF/container.xml中的XML文件。如果此文件目录不存在,则说明您的EPUB文件无效。

第5步:在此XML中,找到媒体类型为application/oebps-package+xml的第一个"rootfile“。这是本书的OPF文件。

步骤6:解析OPF文件(也是XML)

Step 7:现在你需要知道这本书的第一章是什么。

元素中的每个都有一个id和一个href。将它们存储在NSDictionary中,其中键是id,对象是href。

  • 查看中的第一个。它具有对应于中的It之一的idref属性(步骤7a)。在NSDictionary中查找该id,你会得到一个href,

,

  • ,这是第一章的文件,展示给用户。计算出完整路径(提示:将压缩文件解压缩到的位置(步骤3),加上(步骤6)中的OPF文件的基本NSDictionary。

步骤8:使用fileURLWithPath:创建一个NSURL,其中的路径是来自的完整路径(步骤7c)。使用您在中创建的UIWebView加载此请求(步骤1)。

第9步:你需要实现forward / backward按钮或者swipes之类的东西,这样用户才能从一个章节转到另一个章节。使用确定下一步要显示哪个文件。然后,XML按照它们应该出现在读者面前的顺序排列。

这些步骤是从这个link引用的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12242499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档