我想为iOS平台实现一个ePub阅读器。请建议任何开放源代码的翻书动画,书签,字体大小定制和单页查看(没有滚动条)。
发布于 2012-09-03 15:05:55
正如前一篇文章所指出的,没有任何API可以在给定ePub的情况下直接显示它--您需要做一些工作:
的URL将xhtml文档加载到中
如果您希望确保文档不会访问网络,那么您将需要实现一个定制的NSURLProtocol并自己处理文件的字节,因为file:///允许跨域访问。
这将很好地显示内容,但“难”的部分是在文档之间移动(通常表示整个章节)。这是iBooks和其他应用程序为您完成的工作。
注意:为了让UIWebView正确显示内容,在使用file:/// urls时,必须确保文件具有.xhtml扩展名。如果您实现了自己的URL协议处理程序,则需要确保协议处理程序为xhtml返回正确的xml内容类型,即:
应用程序/xhtml+xml
发布于 2013-03-12 08:02:20
参考ePub打包格式和开源阅读器:
发布于 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。
NSDictionary中查找该id,你会得到一个href,,
NSDictionary。步骤8:使用fileURLWithPath:创建一个NSURL,其中的路径是来自的完整路径(步骤7c)。使用您在中创建的UIWebView加载此请求(步骤1)。
第9步:你需要实现forward / backward按钮或者swipes之类的东西,这样用户才能从一个章节转到另一个章节。使用确定下一步要显示哪个文件。然后,XML按照它们应该出现在读者面前的顺序排列。
这些步骤是从这个link引用的
https://stackoverflow.com/questions/12242499
复制相似问题