求助:_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
相关产品推荐
相关产品推荐

