如何在 flutter 中初始化 WebView Controller

How to initiate WebViewController in flutter

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

WebViewController _webViewController = WebViewController();

以便我可以在其他 functions.But 中重用它来解决 nullsafety 问题我尝试初始化它,但显示 没有默认构造函数 。我也试过喜欢,

 WebViewController _webViewController ; (it shows to add late modifier)

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

我应该如何申报?

WebViewController的文档中可以看出,

A WebViewController instance can be obtained by setting the WebView.onWebViewCreated callback for a WebView widget.

现在,如果我们检查 onWebViewCreated, we see that it is of type 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