You need to enable JavaScript to run this app. Flutter WebView在iOS真机白屏但模拟器运行正常问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Flutter WebView在iOS真机白屏但模拟器运行正常问题求助

iOS 真机 WebView 白屏问题排查方案
  • 首先检查 initialUrl 协议配置,你当前代码填写的域名缺少 https 协议头,iOS 模拟器会默认补全协议发起请求,真机的安全校验机制不会自动补全,会直接导致请求失败白屏,修改后的代码参考:
WebView(
  initialUrl: "https://google.com",
  javascriptMode: JavascriptMode.unrestricted,
)
  • 检查 iOS 项目的 ATS(应用传输安全) 策略配置,iOS 默认禁止所有 HTTP 请求,未配置的情况下加载 HTTP 资源会直接被拦截,需要在项目 ios/Runner/Info.plist 中添加如下配置:
<key>NSAppTransportSecurity</key>
<dict>
  <!-- 允许所有HTTP请求,测试阶段可以开启,正式上线建议替换为下面的白名单配置 -->
  <key>NSAllowsArbitraryLoads</key>
  <true/>

  <!-- 正式环境白名单配置示例
  <key>NSExceptionDomains</key>
  <dict>
    <key>google.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
  -->
</dict>
  • 检查 WebView 的布局约束,如果你使用的是 Flutter 框架,未给 WebView 明确指定宽高的情况下,部分 iOS 真机版本会出现渲染尺寸为0的白屏问题,可以在外层套 Expanded 或者 SizedBox 组件明确宽高:
SizedBox(
  width: double.infinity,
  height: double.infinity,
  child: WebView(
    initialUrl: "https://google.com",
    javascriptMode: JavascriptMode.unrestricted,
  ),
)
  • 可以通过 Xcode 连接真机运行项目,查看控制台输出的具体错误日志,也可以用 Safari 开发者工具连接真机的 WebView 实例,查看网络请求、页面渲染的具体报错信息定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 02:27:04