GoForum🌐 V2EX

请教:像起点 / 番茄小说这类 App 的阅读器一般是怎么实现的?

yoooxin · 2026-03-02 15:52 · 0 次点赞 · 1 条回复

大家好,最近在做一个阅读类产品(目前关注 epub 格式),在研究阅读器实现方案时有些疑惑,想请教下有经验的朋友。

目前我能想到的几种可能方案:

  1. WebView + 深度定制

    • 比如基于类似 foliate.js / epub.js 这种排版引擎
    • 自己接管分页、段落拆分、行高、字体、主题、进度等
    • 优点是跨端快,缺点是需要大量 Hack WebView 行为
  2. 原生实现排版

    • iOS 用 CoreText / TextKit
    • Android 用 StaticLayout / 自绘
    • 完全自己控制分页、缓存、手势、动画
    • 工程量巨大,但体验最好?
  3. 混合方案

    • 数据层按“句 / 段”切好
    • 原生做分页与交互
    • 但排版规则可能还是参考 Web 的模型?

我比较困惑的是:

  • 番茄小说 / 起点读书 这种体量和体验都很成熟的阅读器 👉 更可能是完全原生自研,还是基于 WebView 深度魔改?
  • 现在主流商业阅读 App 是否还在使用 Web 技术栈?
  • 如果是原生实现,一般是 “按页缓存” 还是 “按段落流式计算”

目前我自己倾向于认为:

早期可能 WebView ,成熟后大概率是原生排版引擎

但没有实锤证据。

如果有做过阅读器、电子书、小说 App 的朋友,或者踩过相关坑,欢迎分享一下你们的实践经验 🙏 也很欢迎推荐一些值得研究的开源项目或技术方向。

感谢!

1 条回复
chengYT · 2026-03-02 15:57
#1

看看开源代码? readest: https://github.com/readest/readest

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: yoooxin
发布: 2026-03-02
点赞: 0
回复: 0