如何使用官方 webview_flutter 插件在 flutter 中预加载 webview?

C. *_*Zoe 6 webview flutter flutter-layout

我正在 Flutter 中开发一个应用程序,但在尝试在 webview 中预加载页面时卡住了。基本上,该应用程序使用选项卡栏,其中有一些带有普通列表视图内容的选项卡,以及 2 个应该将 webview 作为内容的选项卡。任何想法如何在应用程序加载时预加载 webview 并在后台保持它们处于活动状态,因此当用户在选项卡之间滑动并进入 webview 时,网站已经加载并呈现,因此 UX 是无缝的。我曾尝试创建 WebView 实例并在应用程序加载时使用 setstate 将其分配给一个变量,但无济于事。

任何帮助,将不胜感激。

Sim*_*ani 3

所以你可以尝试这样做:

使用如下所示的 PageView 将您在 TabBar 中调用的小部件包裹起来。

您还可以通过使用 扩展您的有状态小部件来确保 WebView 在加载一次后保持活动状态AutomaticKeepAliveClientMixin。使用此功能时请确保您声明:

 bool get wantKeepAlive => true;
Run Code Online (Sandbox Code Playgroud)

编辑:为了在应用程序启动时预加载所有页面,您可以在声明 TabBar 的类中使用索引堆栈。包裹正文并调用其中的所有页面,如下所示:

  Widget build(BuildContext context) {
    return
     Scaffold(
      body:IndexedStack(
              index: _selectedIndex,
              children: _children,
            ),),}
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用自动保持活动状态,并且它正在完成不每次都重新加载 webview 的工作,但是,它并没有解决我预加载 webview 的问题,因为主要思想是当用户滑动到选项卡 3 时, webview 已经加载并且网站已准备就绪,我不知道如何在后台加载网页,以便它可以显示 (2认同)