You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Kotlin解码base64 PDF字符串并在Android WebView中展示

解决方案

1. WebView基础配置

首先对要加载PDF的WebView做必要参数配置,Kotlin代码如下:

webView.apply {
    // 开启JS支持,满足WebView内置PDF渲染逻辑的运行要求
    settings.javaScriptEnabled = true
    // 禁止本地文件访问,符合项目不读写本地存储的要求
    settings.allowFileAccess = false
    settings.loadWithOverviewMode = true
    settings.useWideViewPort = true
    // 可选:开启缩放控制
    settings.builtInZoomControls = true
    settings.displayZoomControls = false
}
// 禁止PDF跳转系统浏览器打开,强制在当前WebView内加载
webView.webViewClient = WebViewClient()

2. 加载Base64格式PDF

无需将Base64解码存本地,直接拼接标准数据URI后加载即可:

// 替换为你从接口获取的Base64格式PDF字符串
val rawBase64Pdf = "JVBERi0xLjcNJeLjz9MNCjI1IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA5L0xlbmd0aCAxNjAvTiAyL1R5cGUvT2JqU3RtPj5zdHJlYW0NChmTCzbz2u1ECXhRoEhFO5hqM5RwR4FRuV0pXQ0mGWWQhxuo9vSP+sli4xR6MLwMRkd6pwDn4OCx61I2M+jEkDjUoe+v7TZrF7OuB/XqWmXaqR172e28BVjvMkUI64XPyfMCCAPOxfrw0LXOuYjvKnkZix9v5fSJOvwWJV2LNki2C2+ZwO5JBjHYob8BYWEh39N1A2GAj/n5AAzXIZB2v..."
// 清理Base64字符串中可能存在的换行、空格等无效字符
val cleanedBase64 = rawBase64Pdf.replace("\\s".toRegex(), "")
// 拼接标准PDF数据URI
val loadUri = "data:application/pdf;base64,${cleanedBase64}"
// 直接加载到WebView
webView.loadUrl(loadUri)

适配说明

  • 该方案仅依赖Android系统自带的WebView能力,未引入任何第三方依赖,也不会将PDF文件写入本地存储,完全符合项目限制要求。
  • 如果需要兼容低版本系统WebView的PDF渲染能力,可将PDF渲染所需的JS逻辑内联到HTML字符串中,调用webView.loadData()直接加载HTML内容即可,不需要引入外部资源。

内容的提问来源于stack exchange,提问作者Thejani Saranaguptha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:36:02