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

Expo项目中React Native WebView仅显示PDF第一页问题求助

Expo WebView 渲染Base64 PDF 滚动问题解决方法

问题根源

当前代码的布局限制了PDF容器高度,且WebView禁用了滚动,导致仅能显示第一页;同时object标签宽高未正确配置,iframe样式存在引号嵌套语法错误。

修复方案

  • 开启WebView滚动功能,将scrollEnabled设为true
  • 修正HTML内部样式错误,确保PDF容器可自适应内容高度
  • 调整object和iframe的宽高属性,使其充满可用空间

修改后的代码

<WebView
  javaScriptEnabled={true}
  scrollEnabled={true} // 启用WebView滚动
  source={{
    html: `
      <html>
        <body style="margin:0; padding:0;">
          <object 
            data="data:application/pdf;base64, ${pdf64}" 
            type="application/pdf"
            style="width:100%; height:100vh;"
          >
            <iframe 
              src="data:application/pdf;base64, ${pdf64}"
              style="width:100%; height:100vh; border:none;"
            >
              无法显示PDF,请检查浏览器支持情况
            </iframe>
          </object>
        </body>
      </html>
    `,
  }}
/>

补充说明

  • 用100vh设置容器高度,确保PDF占满视口高度,WebView滚动将自动处理长内容的纵向浏览
  • 移除多余的flex布局,避免限制容器高度扩展
  • 修正iframe的样式引号错误,保证样式规则正常生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:00:12