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

求助:_PaymentScreenState类中WebView未定义,如何实现拆分后的新版WebView?

解决Flutter中WebView未定义的问题

步骤1:添加webview_flutter依赖

在项目根目录的pubspec.yaml文件中,添加webview_flutter包的依赖:

dependencies:
  flutter:
    sdk: flutter
  webview_flutter: ^4.4.0 # 可替换为最新版本

执行命令安装依赖:

flutter pub get

步骤2:导入WebView包

在你的_PaymentScreenState所在的Dart文件顶部,导入webview_flutter的包:

import 'package:webview_flutter/webview_flutter.dart';

额外配置(按需):

  • Android:在android/app/build.gradle中,将minSdkVersion设置为21或更高
  • iOS:如果需要加载HTTP链接,在ios/Runner/Info.plist中添加NSAppTransportSecurity配置,允许任意网络请求

步骤3:修正代码中的WebView标记

你的代码里**WebView**是Markdown加粗标记,要去掉星号,改成正常的组件调用:

WebView(
  initialUrl: selectedUrl,
  javaScriptMode: JavaScriptMode.unrestricted,
  gestureNavigationEnabled: true,
  userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E233 Safari/601.1',
  onWebViewCreated: (WebViewController webViewController) {
    _controller.future.then((value) => controllerGlobal = value);
    _controller.complete(webViewController);
  },
  onProgress: (int progress) {
    print("WebView is loading (progress : $progress%)");
    print("url is "+ selectedUrl.toString());
  },
  onPageStarted: (String url) {
    setState(() {
      _isLoading = true;
    });
    _redirect(url);
    print("finishing...0");
  },
  onPageFinished: (String url) {
    setState(() {
      _isLoading = false;
    });
    print("finishing...");
    _redirect(url);
  },
)

完成以上步骤后,WebView未定义的错误即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:10:49