我想为iOS平台实现一个ePub阅读器。请为推荐动画,书签,字体大小自定义和单页视图(无滚动条)推荐任何开源代码。
答案 0 :(得分:4)
正如前一篇文章所指出的那样,没有API可以让ePub显示它 - 你需要做一些工作:
如果您想确保文档没有到达网络,您需要实现自定义NSURLProtocol并自行为文件提供字节,因为file:///允许跨域访问。
这将显示内容很好,但“硬”部分在文档之间移动(通常代表整个章节)。这是iBooks和其他应用程序为您所做的工作。
注意:要使UIWebView正确显示内容,您必须确保在使用file:/// urls时该文件具有.xhtml扩展名。如果您实现自己的URL协议处理程序,则需要确保协议处理程序为xhtml返回正确的xml内容类型,即:
应用/ XHTML + xml的
答案 1 :(得分:4)
使用ePub包装格式和开源阅读器作为参考:
答案 2 :(得分:1)
源代码: AePubReader
<强>实施强>
第1步:使用UIWebView
第2步:下载 EPUB 文件并导入您的项目
第3步:将 EPUB 文件解压缩到应用文档文件夹中的子目录。
第4步:解析目录XML
中的META-INF/container.xml
文件。如果此文件目录不存在,则意味着您的EPUB文件无效。
第5步:在此XML
中,找到第一个媒体类型为rootfile
的“application/oebps-package+xml
”。这是本书的OPF文件。
第6步:解析OPF文件(也是XML)
第7步:现在您需要知道本书的第一章是什么。
NSDictionary
中,其中键是id,对象是href。NSDictionary
中查找该ID,您将获得一个href。NSDictionary
(步骤6)。 步骤8:使用fileURLWithPath:创建NSURL
,其中路径是完整路径(步骤7c)。使用您在(步骤1)中创建的UIWebView加载此请求。
第9步:您需要实施forward / backward
按钮或swipes
或其他内容,以便用户可以从一个章节移动到另一个章节。使用它来确定下一个要显示的文件。然后XML
按照他们应该向读者显示的顺序。
这个步骤是从link
引用的答案 3 :(得分:1)
将UITextView与网页浏览控制器一起使用。 (指明您的疑虑,如果有的话)