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

Flutter应用中WebView无法加载网页问题排查

Flutter WebView空白问题排查与解决

以下是你代码可能存在的问题及对应解决方案:

1. 未正确添加webview_flutter依赖

确保你在pubspec.yaml中添加了适配的webview_flutter依赖:

dependencies:
  flutter:
    sdk: flutter
  webview_flutter: ^4.4.0 # 替换为当前最新稳定版本

执行flutter pub get完成依赖安装。

2. Android平台权限缺失

在android/app/src/main/AndroidManifest.xml中添加网络权限,WebView需要该权限加载网页:

<uses-permission android:name="android.permission.INTERNET" />

3. iOS平台配置缺失

在ios/Runner/Info.plist中添加网络请求配置,确保允许加载外部网页:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

同时确认iOS部署目标版本不低于webview_flutter要求的最低版本(通常为iOS 11.0+)。

4. 未监听加载状态排查错误

修改代码添加加载状态监听,通过日志明确具体错误原因:

class WebViewWidget1 extends StatefulWidget {
  WebViewWidget1({Key? key}) : super(key: key);

  @override
  State<WebViewWidget1> createState() => _WebViewWidget1State();
}

class _WebViewWidget1State extends State<WebViewWidget1> {
  late WebViewController _controller;

  @override
  void initState() {
    super.initState();
    _controller = WebViewController()
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..loadRequest(Uri.parse("https://github.com/ArjunMalhotra07"))
      ..setNavigationDelegate(
        NavigationDelegate(
          onPageStarted: (url) => print("开始加载: $url"),
          onPageFinished: (url) => print("加载完成: $url"),
          onWebResourceError: (error) => print("加载错误: ${error.description}"),
        ),
      );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: const Text('title'),
      ),
      body: WebViewWidget(controller: _controller),
    );
  }
}

查看控制台日志,就能定位是网络问题、资源加载失败还是其他加载异常。

5. 缓存或初始化异常

执行以下命令清理项目缓存后重启应用:

flutter clean
flutter pub get

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:30:38