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

Flutter WebView在iOS中无法运行但Android正常的问题排查

iOS模拟器中WebView无法加载的解决方案

问题分析

你的代码在Android设备运行正常,但iOS模拟器抛出PlatformException(unregistered_view_type, A UIKitView widget is trying to create a PlatformView with an unregistered type: < plugins.flutter.io/webview >错误,核心原因是iOS端的WKWebView平台视图未完成注册,属于webview_flutter_wkwebview插件初始化环节的问题。

修复步骤

1. 补全WKWebView初始化逻辑

在项目的main.dart中,添加WKWebView平台注册代码,放在runApp执行之前:

import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';

void main() {
  // 注册WKWebView平台实现
  if (WebViewPlatform.instance is WebKitWebViewPlatform) {
    WebKitWebViewPlatform.registerWith();
  }
  runApp(const MyApp());
}

2. 简化WebViewController初始化代码

webview_flutter 4.x版本已支持直接创建WebViewController,无需手动区分平台参数,可将控制器初始化代码简化为:

@override
void onInit() {
  super.onInit();
  controller = WebViewController()
    ..setJavaScriptMode(JavaScriptMode.unrestricted)
    ..setBackgroundColor(const Color(0x00000000))
    ..setNavigationDelegate(NavigationDelegate(
      onNavigationRequest: (NavigationRequest request) {
        if (request.url.startsWith('https://www.youtube.com/')) {
          return NavigationDecision.prevent;
        }
        return NavigationDecision.navigate;
      },
    ));
}

3. 清理缓存并重新构建

执行以下操作确保依赖完全生效:

  • 运行flutter clean
  • 进入iOS目录,删除Pods文件夹和Podfile.lock
  • 执行pod install
  • 重新运行flutter run

验证

完成上述步骤后重启iOS模拟器,WebView即可正常加载目标URL。

内容的提问来源于stack exchange,提问作者Fazle Rabbi Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:31:01