swift集成LSYReader遇到的坑

一、概述

关于电子书, 主要还是细节的处理, 懵逼, 做到最后直接集成现成的 LSYReader
主要支持的格式:
  • txt, epub 格式
实现方式:
  • CoreText 以及部分 HTML 与 原生混合
LSYReader地址
其他基于 LSYReader 开发
  • http://www.jianshu.com/p/92ddb36b8edb

  • https://blog.csdn.net/m0_37815556/article/details/78092256

  • 因为我使用的是swift编程, 所以需要配置桥接文件, 导入需要用到的OC头文件, 如有任何问题, 可以联系我

二、Reader的集成步骤:

  • 1.将Reader目录下的所有文件都添加到工程中
  • 2.由于解压epub文件, 需要用到开源的.c文件, 用于解压缩. 所有使用时如果项目中有.pch文件, 参考本项目中.pch文件写法(配置.pch文件)
  • 3.需要导入libz.tbd库

三、Reader的集成过程中遇到的坑:

  • 1.如果导入libz.tbd库, 需要同时导入两个相同的依赖库 :
libxml2.tbd库 和 libresolv.tbd库
  • 2.需要配置的环境:
swift集成LSYReader遇到的坑_第1张图片
Snip20160916_1.png

四、epub 加载下载网络文件问题

  • 为什么使用LSYReader进行读取过程中遇到的读取不到文件。

  • 因为使用网络下载过程中, 我们的问题 epub 或者 txt 文件比较大,就必需考虑到文件下载到本地之后, epub 文件生成的时间了。

  • 下载 -> 生成 -> 加载, 一个小细节的处理。

  • 附上代码:

let pageView = LSYReadPageViewController()
        pageView.resourceURL = url
        dispatch_async(dispatch_get_global_queue(0, 0)) {
            var timeout :NSTimeInterval = 0;
            while(!NSFileManager.defaultManager().fileExistsAtPath(url!.absoluteString)){
                sleep(1);
                timeout+=1;
                if (timeout > 3){
                    break;
                }
            }
            if (!NSFileManager.defaultManager().fileExistsAtPath(url!.absoluteString)){
                print("文件不存在");
                return;
            }
            
            pageView.model = LSYReadModel.getLocalModelWithURL(url) as? LSYReadModel
            dispatch_async(dispatch_get_main_queue(), {
                CHProgressHUD.dismiss()
                self.presentViewController(pageView, animated: true, completion: nil)
            })
        }

你可能感兴趣的:(swift集成LSYReader遇到的坑)