Answers:
EPUB格式汇集了许多不同的规范/格式:
规范看起来有些令人生畏,但实际上,一旦掌握了基础知识(解压缩,解析XML),它就不是特别困难或复杂。
您需要弄清楚如何下载EPUB,将其解压缩到某个位置,解析清单,然后显示相关内容。
如果您刚刚起步,请注意以下几点:
要显示内容,请暂时使用UIWebView
。
这是您的代码的逐步介绍:
1)使用 UIWebView
2)下载EPUB文件
3)使用上方链接的zip库将其解压缩到应用程序的documents文件夹中的子目录中
4)META-INF/container.xml
使用上方的TBXML 解析XML文件(如果该文件不存在,则EPUB无效)
5)在此XML中,找到第一个具有media-type的“ rootfile” application/oebps-package+xml
。这是这本书的OPF文件。
6)解析OPF文件(也是XML)
7)现在您需要知道这本书的第一章是什么。
一个),每个<item>
在<manifest>
元件具有ID和一个href。将它们存储在NSDictionary
键为id且对象为href的位置。
B)先看第一个<itemref>
在<spine>
。它具有一个idref属性,该属性对应于(a)中的一个ID。在中查找该ID NSDictionary
,您将获得href。
c)这是第一章显示给用户的文件。计算出完整路径是什么(提示:在(3)中解压缩zip文件以及在(6)中将OPF文件的基本目录解压缩到的位置)
8)创建一个NSURL
using fileURLWithPath:
,其中路径是(7c)中的完整路径。使用UIWebView
在(1)中创建的加载此请求。
您需要实现前进/后退按钮或滑动或其他操作,以便用户可以从一个章节移动到另一章节。使用确定<spine>
下一个要显示的文件<itemrefs>
-XML中的,应按它们在阅读器中出现的顺序。
我曾经通读过本教程(需要免费注册,很抱歉),它给了我关于ePub的精彩介绍。deverloperWorks教程在这里
我强烈建议您看一些XML处理库。如果您只是想从XML文件中获取特定信息,则可以选择正确的解析策略。
我正在玩arround为iPhone应用程序创建epub-framework。
目前(我真的只是个开始),我可以生成一个带有各章链接的标题页。
我的方法是
现在,我正在研究pageflip,一些gui和较小的可用性问题(保存正在查看的当前页面)
希望您能对如何开始有所了解
Jonathan Wight(schwa)开发了一个ObjC解决方案,用于在iPhone上解析和显示ePub文档。这是他的TouchCode开源存储库的一部分。