【问题标题】:How do I get query parameters in the URL如何在 URL 中获取查询参数
【发布时间】:2014-10-28 07:40:12
【问题描述】:

在 Dart 中,我正在开发一款网页游戏。在这种情况下,我需要一个可以从 URL 获取数据的函数,就像在 PHP 中获取数据一样。我该怎么做?

例如,假设我在加载网页游戏时将以下内容附加到我的 URL:?id=15&randomNumber=3.14。如何将它们作为原始字符串(首选)或其他格式在 Dart 中获取?

【问题讨论】:

    标签: url dart


    【解决方案1】:

    您可以使用 dart:core 中的 Uri 类
    https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-core.Uri

    即:

    main() {
      print(Uri.base.toString()); // http://localhost:8082/game.html?id=15&randomNumber=3.14
      print(Uri.base.query);  // id=15&randomNumber=3.14
      print(Uri.base.queryParameters['randomNumber']); // 3.14
    }
    

    【讨论】:

    • 参数包含冒号时无效。
    • 在网络上时,您应该在主函数上执行此操作,因为一旦颤动导航到路由,查询参数(至少在我的情况下)会以某种方式被删除。
    【解决方案2】:
    import 'dart:html';   
    
    void doWork(){  
      var uri = Uri.dataFromString(window.location.href); //converts string to a uri    
      Map<String, String> params = uri.queryParameters; // query parameters automatically populated
      var param1 = params['param1']; // return value of parameter "param1" from uri
      var param2 = params['param2'];
      print(jsonEncode(params)); //can use returned parameters to encode as json
    }
    

    【讨论】:

    • 最好为您的代码添加一些解释。
    • 虽然此代码可能提供问题的解决方案,但强烈建议您提供有关此代码为何和/或如何回答问题的附加上下文。从长远来看,只有代码的答案通常会变得毫无用处,因为未来遇到类似问题的观众无法理解解决方案背后的原因。
    • 谢谢大家的建议,下次我会记住这些的
    【解决方案3】:

    导入'dart:html'然后就可以使用window.location...

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-24
    • 2023-02-21
    • 1970-01-01
    • 2018-07-22
    • 2016-06-25
    • 2017-02-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多