【问题标题】:how to preload a flutter webview widget如何预加载颤动的 webview 小部件
【发布时间】:2021-02-01 05:27:19
【问题描述】:

我正在使用webview_flutter

无论如何我可以在应用程序启动时预加载 webview 小部件, 并在应用中多次重复使用同一个小部件?

  WebView webview = buildWebview();

  Widget getWebview() {
    return webview;
  }

  Widget buildWebview() {
    return WebView(
      key: GlobalKey(),
      onWebViewCreated: (WebViewController webViewController) {
          print("WebView is Created");
      },
      ...
    );
  }

这是我尝试过的,但似乎 WebView 是在小部件显示在屏幕上时创建的,而不是在应用程序启动时创建的。 而当我再次调用 getWebview() 时,又会创建 WebView。

【问题讨论】:

    标签: flutter webview webview-flutter


    【解决方案1】:

    如果您想在启动时预加载所有页面,则可以在声明 TabBar 的类中使用 indexed stack

    整理正文并调用其中的所有相应页面,如下所述:

    Widget build(BuildContext context) {
       return
        Scaffold(
          body:IndexedStack(
                   index: _selectedIndex, children: _children,
                 ),),}
    

    【讨论】:

    • 页面不在启动过程中怎么办?
    【解决方案2】:

    很好的启蒙和想法。

    你真的可以这样做

    在 main.dart 文件中调用这个类。这将使应用程序在每次启动时使用您首选的 web 视图启动应用程序。

    为了重用这个类,一次又一次地创建另一个类并加载这个 webview。 然后在需要时调用或导入并使用该类

    【讨论】:

      猜你喜欢
      • 2020-11-19
      • 2020-02-21
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 2019-06-27
      • 2019-05-23
      相关资源
      最近更新 更多