如何同时处理GoRouter在移动端与Web端的返回按钮逻辑
GoRouter 跨端导航与返回逻辑的适配疑问
根据GoRouter文档:
GoRouter可通过
context.push()将页面推入Navigator的历史栈,通过context.pop()弹出当前页面。但命令式导航会导致浏览器历史记录出现问题。
因此在Web端,必须使用.go()方法。若要同时支持浏览器返回按钮与应用内返回按钮,调用window.history.back();会是不错的选择。
但该方法在原生移动端应用中无法生效,因此移动端需使用Navigator.of(context).maybePop();。不过,如果使用.go()进行导航,该方法只会直接关闭应用,无法实现返回功能。
这是否意味着我们需要在Web端用.go()、移动端用.push()进行导航?是否存在其他更优的跨端统一解决方案?
我曾在GoRouter官方文档及GitHub问题区寻找解决方案,但没有找到有效答案。
内容的提问来源于stack exchange,提问作者Roc Boronat
相关产品推荐
相关产品推荐

