Web 控制浏览器后退按钮

2024-03-22

我正在使用导航 2 和setUrlStrategy(PathUrlStrategy());我添加了WillPopScope但是onWillPop单击浏览器的后退按钮时不会调用。

  Widget build(context) {
return WillPopScope(
  onWillPop: () async {
    print('here');
    if (currentStep == 0) {
      return false;
    }
    return true;
  },
  child: Scaffold(...

在导航器2.0中,网络浏览器是按时间顺序排列的 https://github.com/flutter/flutter/issues/109011#issuecomment-1212533001基本上将所有导航视为推送。

设想:

  1. 从屏幕 1 导航到屏幕 2
  2. 单击浏览器的后退按钮。

在这种情况下,Flutter 将push将之前的路线(屏幕 1)放入堆栈中。

也就是说,浏览器后退按钮不再触发onPopRoute。相反,它会触发 onPushRoute。

我相信它是这样设计的,以便每个导航操作都可以被视为深度链接。考虑到这一点,如果您正在开发一款 Web Flutter 应用程序,您应该尽可能避免将参数从一个路由传递到另一个路由。

https://github.com/flutter/flutter/issues/71122#issuecomment-733864359 https://github.com/flutter/flutter/issues/71122#issuecomment-733864359

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web 控制浏览器后退按钮 的相关文章

随机推荐

  • Firebase 3.0.1 Web API 查询不起作用,出现 iFrame 安全错误

    我做了一个简单的调用ref once value callback 回调从未被调用 相反 我在 Chrome 控制台中收到此错误 Refused to display https console firebase google com pr
  • 拥有一个 Activity 实例

    我的活动导航和返回堆栈有问题 我希望您能为我解决这个问题 问题 根 Activity gt gt gt SecondActivity gt gt HomeButton 然后 这将带我进入主页 然后我从那里选择 Gmail gt gt 消息
  • 在 makefile 中使用大括号进行变量扩展不起作用

    当我在 shell 上运行以下命令时 它可以正常工作 但如果我把它写在 Makefile 中并用 make 命令调用它 它就不起作用 cp wpa cli 请求者 密码 事件 usr local bin make 命令后出错 cp 无法统计
  • Docker build ARG 始终为空字符串

    我这里有一个 dockerfile FROM golang 1 13 alpine as build ARG DIR somevalue RUN echo DIR 输出是 Sending build context to Docker da
  • Cassandra 3 需要什么版本的 Java

    推荐的Java版本对于卡桑德拉 2 0 https stackoverflow com q 28912016 545127是 Java 7 但是 Cassandra 3 建议或需要哪个版本 具体来说 版本 3 5 一些信息表明需要 Java
  • XML:

    与问题类似 XML那个问号是什么意思 https stackoverflow com questions 39119165 xml what does that question mark mean例如 感叹号是什么意思 下面来自 的含义
  • PGAdmin 显示 Heroku 的数据库量过多

    我正在学习一些后端的东西 我在本地创建了一个测试数据库并填充了一些数据 然后使用以下命令将数据库转储到 SQL 文件 pg dump U USERNAME DATABASE no owner no acl f backup sql 最后将其
  • 在文件搜索中排除 Eclipse/Aptana 中查找的文件类型

    有没有办法在 Aptana 或 Eclipse 文件搜索中排除图像类型 我想搜索所有非图像文件 而不是指定我要搜索的所有文件类型 尝试添加一个 在您不想匹配的模式前面标记 put cgi pm sql 在文件名模式部分中 我正在使用 Ecl
  • 为什么接受数组的 C++ 模板并不比根据 GCC 5.3 和 Clang 4.0 接受指针的模板更专业?

    为什么接下来的两个模板声明不明确 因此两者都不比另一个更专业 我知道这个问题在 Stack Overflow 上已经被多次提出 但通常人们会回答如何解决歧义 而不是回答为什么会发生这种情况 I template
  • 在远程主机中:无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]

    部署后 当我尝试发送邮件时出现以下错误 500 500内部服务器错误 Swift TransportException 无法与主机 smtp gmail com 建立连接 连接超时 110 堆栈跟踪 at in SF ROOT DIR li
  • Android 模拟器 - Wifi 错误

    我正在使用 Android SDK 模拟器广告尝试连接到网络 我无法在设置 gt 无线和网络中执行此操作 在我需要打开 WiFi 的地方 我收到 错误 怎么解决呢 Gorov 关闭模拟器 关闭以太网 火线和任何其他网络接口 他们全部 我的意
  • 在同一程序中调用 srand() 两次[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么当我在两个截然不同的点调用 srand 时会导致数字不是随机的 一旦我删除其中一个 它就会恢复正常 这取决于你如何称呼它 的目的sr
  • 在 JavaScript 中,如果我分配给一个具有 getter 但没有 setter 的对象属性,会发生什么情况?

    在下面的代码中 都使用了console log o x print 1 任务会发生什么情况o x 2 就这样被忽略了吗 var o get x return 1 console log o x 1 o x 2 console log o x
  • Java:在后台更新有大量行的 JTable

    我正在编写一个简单的 Java Swing 实用程序 它将从 MQ JMS 服务器读取消息并将它们显示在 JTable 中 private void getMessages try if null Queue Queue close Clo
  • 如何隐藏 emacs 创建的备份文件?

    我在使用 vi 很长时间后才开始使用 emacs 让我烦恼的一件事是 每当我修改文件 保存它并退出 emacs 时 我都会看到在同一目录中创建一个名为filename 如果我编辑的文件是filename 有什么办法可以摆脱这个吗 或者隐藏这
  • 将预测与 svyglm 结合使用

    我发现了一些奇怪的行为predict和svyglm对象从survey包裹 如果你的新数据在predict具有一个级别的因子 字符会输出错误 Error in contrasts lt tmp value contr funs 1 isOF
  • 如何使用 Ruby MiniTest::Spec 和 Rails 进行 API 集成测试?

    我正在构建一个包含 Rails API 的应用程序 并希望使用 Ruby MiniTest Spec 进行测试 有什么好的设置方法吗 例如 良好的目录组织 包含文件的良好方式等 我正在使用 Rails 3 In Action 一书中的指南
  • 在 Windows 上使用 Emacs 编译 C++ 程序

    我已经使用 Emacs 进行基本文本编辑有一段时间了 但从今天开始 我尝试使用它进行 C 编译 在过去的几个小时里 我一直在寻找如何解决这个问题 但我在他们的技术中不断遇到障碍 我认为其中一些与教程过时有关 基本上 我想做的就是能够通过 M
  • FCM/GCM JSON 有效负载 - 如何指定大图标?

    我正在使用 firebase 端点发送推送通知 它正在成功运行 我正在使用邮递员将请求发送到 FCM 我的问题是我不明白如何发送大图标 FCM 有两种可以发送的有效负载 数据有效负载和通知有效负载 See here https fireba
  • Web 控制浏览器后退按钮

    我正在使用导航 2 和setUrlStrategy PathUrlStrategy 我添加了WillPopScope但是onWillPop单击浏览器的后退按钮时不会调用 Widget build context return WillPop