正在从选项卡栏选择更新URL



我目前正在更新Flutter Web应用程序,以支持通过URL共享页面。我目前有一个使用TabBar的屏幕,根据所选选项卡显示不同的视图

  • 选择选项卡时更新URL(例如,将&section=tabName附加到URL(
  • 将URL粘贴到新的浏览器选项卡中,并在URL指定的选项卡上打开应用程序

第二部分很简单,只需使用&section=...参数并使用它来设置选项卡控制器的initialIndex。然而,更新URL似乎相当困难。

我曾尝试使用RouteInformationParser从参数列表中生成一个新路由,但这会触发onGenerateRoute回调,并且似乎只是重新导航到从新URL更新了initialIndex的页面。我可以通过将TabBarView替换为一个嵌套的导航器来解决这个问题,该导航器可以导航到所选选项卡的内容,但如果你想导航到比所选选项卡更深的位置,这似乎很快就会变得相当笨拙。

我提到的一个更简单的选项是window.history.replaceState,它看起来简单得多,但感觉有点笨拙。有没有我错过的方法?

谢谢!

这有点麻烦,但我可以通过使用提供选项卡索引的TabBar.onTap强制更改选项卡导航的URL,并通过它进行导航。它破坏了不错的幻灯片操作,但我在地址栏中得到了自定义URL,这对我的使用更重要。

最新更新