Skip to content

移动端 WebView AI Markdown 渲染

移动端 WebView 的核心问题不是“能不能渲染 Markdown”,而是字体缩放、CPU、内存和 worker 支持都比桌面浏览器更敏感。AI 输出又可能很长,包含代码块、表格、Mermaid 或 KaTeX。Markstream 提供 px CSS 变体、chat mode、live node 控制和延迟渲染选项,帮助 WebView 保持稳定。

推荐配置

问题处理
根字号被 App 改写使用 index.px.css
长回答滚动卡顿启用虚拟化和 live node 限制
Monaco 太重移动端优先 <pre> 或轻量高亮
Mermaid / KaTeX 慢只对可见区域或最终态启用
ts
import 'markstream-vue/index.px.css'
// React: import 'markstream-react/index.px.css'
// Svelte: import 'markstream-svelte/index.px.css'
vue
<MarkdownRender
  mode="chat"
  :content="content"
  :final="isDone"
  node-virtual="auto"
  :max-live-nodes="300"
  :live-node-buffer="60"
  :render-code-blocks-as-pre="true"
  :fade="false"
  smooth-streaming="auto"
/>

iOS WKWebView 中要特别关注 worker 配置和动态字体缩放;Android WebView 要测试系统字体放大、旧 WebView 内核和低端机性能。Angular 当前没有 px CSS 变体,需用默认 CSS 并做真实设备测试。

不适合的情况:移动端只展示短静态说明文本,或 Native 层已经把 Markdown 转成了稳定 HTML。