【问题标题】:flutter navigator links / routes doesn't work from external颤振导航器链接/路由在外部不起作用
【发布时间】:2022-11-25 02:10:22
【问题描述】:

我正在构建一个带有 flutter 和 Navigator 2.0 的 webapp。 应用内导航工作正常。但是,一旦我在网络服务器上发布我的应用程序并尝试访问指向我应用程序中路由的 url,路由就不会加载,应用程序会从主页启动。

例如:

我从外面点击的链接:https://flutter-project.com/#/contacts/ID6Nx2wTxgFcNW3gvMb2

应用程序在浏览器中打开的位置:https://flutter-project.com/#/

有没有办法使这成为可能,以便用户可以与其他人共享链接并且他们可以打开它们?

当前打开链接的唯一方法是打开 web 应用程序,然后将链接粘贴到应用程序已经启动的浏览器窗口中,但这不是我期望的 web 应用程序的行为。我想单击链接并在它指向的位置。

【问题讨论】:

    标签: flutter browser hyperlink flutter-web navigator


    【解决方案1】:

    我也有这个问题。

    这是我的网站:patrickferreira.com.br

    它有这些路线:

    /calculadoracelular
    /calculadorapc
    /robotrader
    

    如果您尝试 patrickferreira.com.br 并单击第四部分中的其中一项,它会按预期导航到路线

    但是如果你试图直接登陆一个子页面,它会抛出一个断开的链接错误。

    Route<dynamic> generateRoute(RouteSettings settings) {
      switch (settings.name) {
        case '/calculadoracelular':
          return MaterialPageRoute(builder: (_) => ProductPage(work: tradeSizeCalculatorForMobile));
        case '/calculadorapc':
          return MaterialPageRoute(builder: (_) => ProductPage(work: tradeSizeCalculatorForDesktop));
        case '/robotrader':
          return MaterialPageRoute(builder: (_) => ProductPage(work: tradingBot));
        default:
          return MaterialPageRoute(builder: (_) => const MyHomePage(title: 'Portfólio Patrick Ferreira'));
      }
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Portfólio Patrick Ferreira',
          debugShowCheckedModeBanner: false,
          theme: ThemeData(
            fontFamily: "Ubuntu",
            primarySwatch: Colors.deepOrange,
          ),
          onGenerateRoute: (settings) => generateRoute(settings),
          initialRoute: '/#',
          routes: {
            '/': (context) => const MyHomePage(title: 'Portfólio Patrick Ferreira'),
            '/calculadorapc': (context) => ProductPage(work: tradeSizeCalculatorForDesktop),
            '/calculadoracelular': (context) => ProductPage(work: tradeSizeCalculatorForMobile),
            '/robotrader': (context) => ProductPage(work: tradingBot),
          },
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-16
      • 2022-12-11
      • 1970-01-01
      • 2022-01-24
      • 2018-10-11
      • 2019-09-27
      • 2020-12-28
      • 1970-01-01
      相关资源
      最近更新 更多