【问题标题】:How to initiate WebViewController in flutter如何在 Flutter 中启动 WebViewController
【发布时间】:2021-08-22 03:38:58
【问题描述】:

我试图在类级别声明一个变量,如下所示:

WebViewController _webViewController = WebViewController();

这样我就可以在其他函数中重用它。但是对于 nullsafety 问题,我尝试对其进行初始化,但显示 没有默认构造函数。我也尝试过,

 WebViewController _webViewController ; (it shows to add late modifier)

WebViewController _webViewController = null; (null can not be assigned)

我应该如何申报?

【问题讨论】:

  • 这取决于您使用的包。你用的是哪一个?
  • 'package:webview_flutter/webview_flutter.dart'; (webview_flutter: ^1.0.0)

标签: flutter dart default-constructor dart-null-safety


【解决方案1】:

WebViewController 的文档中,您可以看到它说,

WebViewController 实例可以通过设置 WebView 小部件的 WebView.onWebViewCreated 回调来获取。

现在,如果我们检查 onWebViewCreated 的文档,我们会发现它的类型为 WebViewCreatedCallback,它提供了一个 WebViewController 的实例,因为它是您提供的回调中的参数。

所以,首先

// Make it late since we can't create an instance by ourselves
late WebViewController _webViewController;

然后,在您使用小部件的构建方法中,

WebView(
  onWebViewCreated: (controller) {
    // We are getting an instance of the controller in the callback
    // So we take it assign it our late variable value
    _webViewController = controller,
  },
  .....

现在,您可以在代码中的任何位置使用 _webViewController

【讨论】:

    猜你喜欢
    • 2021-06-25
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 2023-03-28
    • 2019-05-26
    • 1970-01-01
    相关资源
    最近更新 更多