如何使用官方webview_flutter插件在颤振中预加载网页视图?



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

任何帮助将不胜感激。

所以你可以尝试这样做:

使用页面视图将您正在调用的小部件包装在 TabBar 中,如下所示。

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

bool get wantKeepAlive => true;

编辑: 为了在应用启动时预加载所有页面,您可以在声明 TabBar 的类中使用索引堆栈。包裹正文并像这样调用那里的所有页面:

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

您可以使用 OffStage 微件包装 Web 视图,并将 offstage 参数设置为 true。当某些事件被触发并且您已准备好显示页面时,请将 offstage 参数翻转为 false。

最新更新