一个基于 Vditor 的自定义 WebView 安卓 Markdown 编辑器
- 本地化 cdn
- 自定义工具栏
- 封装为 WebView 并暴露常用方法
- 日夜间主题切换
- Markdown 常用操作
- ......
其他介绍详见 Vditor
使用方法
具体使用方法都在 MainActivity 里了,下面是关键代码和说明
vditor 初始化
使用 vditor.startLoad()
方法初始化 vditor,参数为 isEditMode
,isDarkTheme
,Vditor.IVditorCallback
vditor.startLoad(true, true, object : Vditor.IVditorCallback { override fun onSelectPicture() { // ignore } /** * 初始化完成 */ override fun onLoadFinished() { if (vditor.isEditMode) { // 如果是editMode的话,只需要调用initEditor,setCache是给编辑器赋初始值,可选 // vditor会根据key自动保存草稿,不需要再在安卓端保存,使用localStorage实现的 // vditor.setCache("edit", "编辑器初始化值") vditor.initEditor("edit") } else { // 如果不是editMode,只是预览,只需要调用initPreviewer,传入md格式的字符串即可 vditor.initPreviewer("预览初始化值") } } override fun onChange(value: String) { //TODO 编辑器内容改变后的回调 } })
给 vditor 赋初值
使用 startLoad()
方法开始初始化后,页面加载完成后会触发 onLoadFinished()
回调,然后才能正式开始初始化 vditor,根据是否为编辑器模式来调用不同的方法。因为 vditor 中编辑器和仅预览是两个不同的初始化方法,详见 Vditor 官网的 API 介绍。
编辑器模式
例如,如果是编辑器模式 vditor.isEditMode == true
,则调用 vditor.initEditor()
方法,参数为 key
,字符串类型,用来保存草稿,草稿根据传入的 key
自动保存,原理是 localStorage
,用户可以自己决定是否要赋初值,如果需要,使用 vditor.setCache()
方法给编辑器设置初始值。
预览模式
调用 vditor.initPreviewer()
方法,参数为要预览的内容。