开发问题背景:
flutte 项目中开发网页暴露出来供外部的 网页调用,并不是跳转到项目的首页
项目中使用的路由是 GetX 4.6.0
存在的问题
- web -> flutter
- flutter 使用 history.back 到web,
- web forward 到 flutter
此时不会返回到上一个flutter页面,而是跳转到了首页。因为flutter应用已经关闭了,再次进来就会重启应用了,所以就会是首页。
解决方案
记录上次非空Path的链接到 localStorage 中,下次进来如果是首页或者path为 / , 则进入上次的链接
String path = AppRoutes.HOME;if (GetPlatform.isWeb) {final uri = Uri.parse(web.window.location.href);path = '${uri.path}?${uri.query}';if (uri.path.isNotEmpty && uri.path != "\/") {web.window.localStorage.setItem('init_route', path);} else {path = web.window.localStorage.getItem('init_route')??"";}}GetMaterialApp(...initialRoute: path...)
使用 get: ^5.0.0-release-candidate-9.2.1 进行解决,
这样就不会出现back forward 返回到首页的问题,但是又回出现新的问题,
其他页面使用使用Get.back返回, 根页面使用 history.back 返回会返回到之前关闭的flutter web页面
解决方案:其他页面在使用Get.back 返回之前调用一下 history.back.