首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >http://localhost:60117/ItemDetails?pId=1之类的网页网址导航不起作用

http://localhost:60117/ItemDetails?pId=1之类的网页网址导航不起作用
EN

Stack Overflow用户
提问于 2021-08-05 17:38:47
回答 3查看 502关注 0票数 1

在我的flutter项目中,我必须分享一个通过社交媒体直接重定向到特定产品详细信息页面的URL。所以我使用velocity_x添加了路由信息,我的main.dart页面如下所示

代码语言:javascript
复制
 @override
Widget build(BuildContext context) {
return MaterialApp.router(
  
  debugShowCheckedModeBanner: false,
  title: 'AppName',
  theme: ThemeData(
      primaryColor: MyAppTheme.primaryColor,
      accentColor:MyAppTheme.accentColor
  ),
routeInformationParser: VxInformationParser(),
routerDelegate: VxNavigator(routes: {

  "/": (_,__)=> MaterialPage(child:SplashScreen()),
  "/login": (_,__)=> MaterialPage(child:SignUp()),
  "/home": (_,__)=> MaterialPage(child:Home(selectedIndex: 0)),
  "/ItemDetails": (uri, _){
    final pId=int.parse(uri.queryParameters["pId"]);     
    return MaterialPage(
      child:ItemDetailsFromAdd(
        pId:pId.toString() ,
      
    ));
  },
  
}),
)

我的初始路由是闪屏,在检查身份验证后,它会重定向到登录页面或主页。当我点击一个特定的项目时,会创建一个网址"http://localhost:60117/ItemDetails?pId=1“this。但当我尝试从另一个选项卡启动这个url时,它首先加载产品详细信息页面,然后突然重定向到我的初始页面闪屏。

我尝试将"/“初始路由从"/”更改为"/splash“,并更改了我的"<base href="/splash/">”,但它最初给出了一个页面未找到错误。

如何以正确的方式使用此"http://localhost:60117/ItemDetails?pId=1“网址直接访问我的产品详细信息页面。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-26 16:44:50

经过长时间的测试,我找到了答案,这里我的初始路径('/')重定向到‘’SplashScreen‘。因此,当我首先尝试使用URL访问特定项目时,它会转到SplashScreen,在那里我编码为根据用户身份验证重定向到主页或登录。因此,当我使用url访问特定项目时,它会重定向到我的登录/主页。解决方案是我更改了到主页的初始路由。

票数 0
EN

Stack Overflow用户

发布于 2021-08-05 17:47:30

代码语言:javascript
复制
onGenerateRoute: (settings) {
      List<String> pathComponents = settings.name.split('/');
      if (pathComponents[1] == 'invoice') {
        return MaterialPageRoute(
          builder: (context) {
            return Invoice(arguments: pathComponents.last);
          },
        );
      } else
        return MaterialPageRoute(
          builder: (context) {
            return LandingPage();
          },
        );
      ;
    },

试试这条路

票数 0
EN

Stack Overflow用户

发布于 2021-08-05 17:52:16

尝试将散列标签#添加到URL:

代码语言:javascript
复制
http://localhost:60117/#/ItemDetails?pId=1

如果你正在运行一个渐进式的web应用,这是分享它的唯一方式。/#/的左边告诉浏览器从哪里获取应用程序,它后面的是路由器逻辑。如果您尝试删除/#/,应用程序将不会正常运行,并恢复到默认路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68671202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档