加载 ePub — 简单的 ePub 阅读器问题
我正在 iPhone 上开发一个简单的 epub 阅读器,但一直想知道如何加载它。 我知道阅读 PDF 等文件有些简单,因为它本身就是一个文件,可以使用 UIWebView 或 CoreGraphics 加载。 它与 ePub 不同,ePub 需要更多的工作来获取(解析 xml 等)内容,因为它本质上是一个 ZIP 文件。
现在我想到的做法是执行以下操作。 但我不确定这是否是正确的方法:
- 将 book.epub 文件下载到 UserDomain,如本例所示
- 解压缩 book.epub 文件以创建一个图书目录,其中所有内容都
- 将从创建的图书目录中访问文件并做必要的事情(检索、解析……等)。
- 当epub被卸载或应用程序被关闭时,删除解压版本--book目录
- 再次打开book.epub时从解压开始循环。
除非我可以直接访问 ePub 文件内容,否则我想没有必要解压缩它们......这不太可能,因为它是 ZIP。
预先感谢您的任何帮助。 :)
亲切的问候, 奥努
I'm developing a simple epub reader on iPhone but been wondering how to go about loading it. I know reading files such as a PDF is somewhat straightforward because it's one file in itself and can be loaded using UIWebView or CoreGraphics. It's unlike ePub which requires a bit more work to get(parsing xml's ...etc) the contents since it's essentially a ZIP file.
Now the way I thought of doing it is by doing the following. But I'm not sure if it's the right way:
- Download the book.epub file to UserDomain as in this example
- Unzip book.epub file to create a book dir where all the contents will be
- From the created book dir, access the files and do the necessary(retrieve, parse.. etc).
- When the epub is unloaded or application's been closed, delete unzipped version -- the book dir
- Do the cycle from unzipping when opening the book.epub again.
Unless I can access ePub file contents directly, I guess there's no need to unzip them... which is unlikely because it's a ZIP.
Thanks in advance for any help. :)
Kind regards,
oonoo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在我看来一切都很好。 另一种选择是将 zip 的内容提取到内存中的 NSData 对象,但这可能不适用于非常大的文件。
That all looks fine to me. Another option would be to extract the contents of the zip to
NSData
objects in memory, but that may not work on extremely large files.