flutter - 将 url 参数传递给 flutter web

标签 flutter web url-parameters

我正在开发一个涵盖多个平台的 flutter 项目。我的应用程序有一个支付 api,它还有一个回调 url,可以将一些 url 参数发送到我的结果屏幕。我的付款结果屏幕的 url 是 https://myapp.com/payment-result。我想读取我的回调 url 的参数,它们是:https://myapp.com/payment-result/?status=20&amount=2 另一方面,这个 url,总是重新启动我的 Web 应用程序并将我带到应用程序的第一页。

这是我的付款结果屏幕:


class PaymentResult extends StatelessWidget {
  static const routeName = '/payment-result';

  @override
  Widget build(BuildContext context) {
    final args = ModalRoute.of(context)!.settings.arguments as Map;
    bool shouldPop = true;
    return WillPopScope(
      onWillPop: () async {
        Navigator.of(context).popAndPushNamed('tab-screen');
        return shouldPop;
      },
      child: Scaffold(
        body:  kIsWeb ? WebWidget(args:args): MobileWidget(args: args),
      ),
    );
  }
}

我在主小部件上管理我的路线是这样的:


   routes: {
                    SelectPlan.routName: (ctx) => SelectPlan(),
                    MealDetails.routeName: (ctx) => MealDetails(),
                    AuthScreen.routeName: (ctx) => AuthScreen(),
                    PaymentResult.routeName: (ctx) => DailyDetails(),
                    SelectSub.routeName: (ctx) => SelectSub(),
                    OrderScreen.routName: (ctx) => OrderScreen(),

最佳答案

您可以使用来自 https://pub.devgo_router 包.

它是由 flutter 团队为这种路由制作的。

  1. 基本设置
class App extends StatelessWidget {
  App({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) => MaterialApp.router(
        routeInformationParser: _router.routeInformationParser,
        routerDelegate: _router.routerDelegate,
        title: 'GoRouter Example',
      );

  final GoRouter _router = GoRouter(
    routes: <GoRoute>[
      GoRoute(
        path: '/',
        builder: (BuildContext context, GoRouterState state) => const Page1Screen(),
      ),
      GoRoute(
        path: '/page2',
        builder: (BuildContext context, GoRouterState state) => const Page2Screen(),
      ),
    ],
  );
}

class Page1Screen extends StatelessWidget {...}

class Page2Screen extends StatelessWidget {...}
  1. 对于参数传递:https://gorouter.dev/parameters

官方文档:https://gorouter.dev/

关于flutter - 将 url 参数传递给 flutter web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72536038/

相关文章:

flutter - 是否有用于二维条码扫描仪的内置 flutter 库?

flutter - 如何在flutter Provider中为单个小部件使用多个消费者

java - 使用 Struts 2 将查询字符串中的键值从一个页面传递到项目中的另一个页面

javascript - 浏览器后退按钮更改动态 url 参数

在我的 URL 末尾添加/?name=someonesname 时出现 WordPress 404 错误

Flutter:放置 Logo 图像后背景变为一半

dart - Dart 属性结果需要缓存吗?

javascript - 表单验证在 ExtJS 中不起作用

mysql - 没有 www 的服务器返回 404

python - 如何在谷歌地图中直观地显示路线