swift集成LSYReader遇到的坑

一、概述

關于電子書, 主要還是細節的處理, 懵逼, 做到最后直接集成現成的 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)
            })
        }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容