美文网首页
swift集成LSYReader遇到的坑

swift集成LSYReader遇到的坑

作者: 劉戦軍 | 来源:发表于2016-09-16 15:58 被阅读351次

    一、概述

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

    二、Reader的集成步骤:

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

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

    • 1.如果导入libz.tbd库, 需要同时导入两个相同的依赖库 :
    libxml2.tbd库 和 libresolv.tbd库
    
    • 2.需要配置的环境:
    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遇到的坑

          本文链接:https://www.haomeiwen.com/subject/fkliettx.html