![](/img/trans.png)
[英]flutter: how to make pull down to refresh flutter webview using the official webview_flutter package
[英]How to preload a webview in flutter using the official webview_flutter plugin?
我正在 flutter 中开发应用程序,但在尝试在 webview 中预加载页面时卡住了。 基本上,该应用程序使用标签栏,其中包含一些带有正常列表视图内容的标签,以及 2 个应包含 webview 作为内容的标签。 知道如何在应用程序加载时预加载 web 视图并在后台保持它们的活动状态,因此当用户在选项卡之间滑动并进入 webview 的选项卡时,站点已经加载并呈现,因此 UX 是无缝的。 我尝试创建 WebView 实例并在应用程序加载时使用 setstate 将其分配给变量,但无济于事。
任何帮助,将不胜感激。
所以你可以尝试做的是:
使用 PageView 将您在 TabBar 中调用的小部件包装起来,如下所示。
您还可以通过使用AutomaticKeepAliveClientMixin
扩展有状态小部件来确保 WebView 在加载一次后保持活动状态。 在使用它时,请确保您声明:
bool get wantKeepAlive => true;
编辑:为了在您的应用程序启动时预加载所有页面,您可以在声明 TabBar 的 class 中使用索引堆栈。 包裹正文并像这样调用那里的所有页面:
Widget build(BuildContext context) {
return
Scaffold(
body:IndexedStack(
index: _selectedIndex,
children: _children,
),),}
您可以使用 OffStage 小部件包装 webview 并将 offstage 参数设置为 true。 当某些事件被触发并且您准备好显示页面时,将 offstage 参数翻转为 false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.