富文本格式(Rich Text Format, 一般简称为RTF)是由微软公司开发的跨平台文档格式。大多数的文字处理软件都能读取和保存RTF文档。RTF是Rich TextFormat的缩写,意即多文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows“附件”中的“写字板”就能打开并进行编辑。RTF是一种非常流行的文件结构,很多文字编辑器都支持它。一般的格式设置,比如字体和段落设置,页面设置等等信息都可以存在RTF格式中,它能在一定程度上实现word与wps文件之间的互访。
最近正在调研Android app 如何实现富文本编辑器,通过在网上查找相关方面的资料,得知Android 端实现富文本编辑器主要有以下几种方式:
- webview + javascript
优点:能够与PC端实现互通,减少了对客户端的依赖,PC端出新样式,只需要通过更新JS就可以支持。
缺点:首先要建立JS与原生之间稳定的沟通渠道(可以通过JSSDK来提供支持)。交互效果没有原生的理想。需要兼容各个版本的WebView以及其他兼容性问题 (这个问题可以通过使用其他第三方浏览服务解决,比如 Crosswalk)。
第三方开源项目
richeditor-android
icarus-android : Maybe the best rich text editor on android platform - EditText + Span
优点:交互效果比较理想,绕过了WebView的兼容性等问题。
缺点:缺点:不能与网页端文本编辑器实现互通,web端通过css等实现一些新样式,原生如果要兼容新样式,就需要发版本支持,不够灵活。
第三方开源项目
android-animate-RichEditor - 使用多种 Layout 布局,每一种布局对应一种 HTML 格式,比如图片,比如顺序列表等。具体的实现例子可以参考这个链接。 Medium 和 Evernote 的富文本编辑就是采用这种方式实现的。总体来说比较复杂。
第三方开源项目
mthli/Knife
参考文档
如何实现一个 Android 端的富文本编辑器组件?
译 — Spans,一个强大的概念
放弃WebView,使用Crosswalk做富文本编辑器