目录
- swift实现一个小说阅读器(一)
- swift实现一个小说阅读器(二)
- swift实现一个小说阅读器(三)
- 未完待续~
最近在学习swift,我觉得最好的学习是在有基础的情况直接上手项目,这样才能最快的深入这门语言。所以研究搞一个类似于追书神器小说阅读器。
在整个开发过程中刚开始还是用着OC的思想去生硬的转到swift上,写的东西在swift里觉得很蹩脚,后来渐渐的习惯起来,这种感觉还是很不错的!现在状况是工作开发使用OC,业余时间使用swift,目前已经可以自如的在两种语言上切换比如在写OC代码的时候下意思的打";",而在swift中没有这个下意思。。。(扯远了= =#...)
思路
先说说实现的思路吧,因为这个阅读器是在线版的,所以数据源是一个问题,所以打算找一些小说网站读取html代码然后取里面内容节点来使用,这样如果有多个网站就可以实现换源这个功能了,目前对于网站的解析规则都是写死在app里的,后期可能考虑把规则写到后端,避免网站更新而解析规则未同步造成解析失败的问题。
其中小说目录的数据就取网站的排行榜,如果弄的复杂像样点的话可以先抓一下分类然后二级界面是这个分类的小说,如果考虑分页就抓去网站的wap版,pc版也会有分页但是一页的数据可能有百十多个这样就达不到目的了。
然后是目录,因为目录不打算做分页,所以我直接拿的pc版的。
小说内容考虑到pc版的网页上很多东西没用的东西,再加上还可能有广告所以,我抓的是wap版的不分页的数据。
解析
解析html代码使用的是mattt大神的[Ono(斧)][ono-github-url],OC写的
支持XPath 和 CSS 查询
[ono-github-url]: https://github.com/mattt/Ono
Tips: 在拿到网站的data后,网站可能是gbk编码的如果直接解析可能会解析不出来任何东西,所以拿到data之后要转码成UTF-8才行。在这个地方卡了好长时间!!!