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

Flutter WebView中setJavaScriptMode.unrestricted使用报错求助

问题解决:Flutter WebView 初始化异常修复

错误根源分析

结合你的代码和报错信息,问题集中在三个核心点:

  1. 级联操作语法错误:WebViewController初始化时,级联运算符..的使用格式错误,不能在实例化语句后单独换行拆分,必须紧跟在WebViewController()之后连写。
  2. URL缺少协议头:Uri.parse('www.youtube.com')未指定https://或http://,会导致URL解析失败,WebView无法加载资源。
  3. 类名命名冲突:自定义的WebView类与webview_flutter包内置的WebView组件重名,引发编译冲突。

修复后的完整代码

import 'package:webview_flutter/webview_flutter.dart';

// 修改类名,避免与包内WebView组件冲突
class MyWebView extends StatefulWidget {
  const MyWebView({super.key});

  @override
  State<MyWebView> createState() => _MyWebViewState();
}

class _MyWebViewState extends State<MyWebView> {
  // 修正级联操作语法,添加HTTPS协议头
  final controller = WebViewController()
    ..setJavaScriptMode(JavaScriptMode.unrestricted)
    ..loadRequest(Uri.parse('https://www.youtube.com'));

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: WebViewWidget(controller: controller),
    );
  }
}

额外验证步骤

  • 执行flutter pub upgrade webview_flutter,确保依赖为最新稳定版;
  • 确认Android端android/app/build.gradle中minSdkVersion保持20及以上;
  • iOS端若加载非HTTPS站点,需在Info.plist中添加App Transport Security例外配置(使用HTTPS链接可跳过此步)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:12:37