gpt4 book ai didi

dart - 将网址传递到Dart应用中

转载 作者:行者123 更新时间:2023-12-03 03:28:57 33 4
gpt4 key购买 nike

我有一个带有链接的页面。这些链接都以相同的方式结束。例如www.site.com/fruit/apples, www.site.com/fruit/bananas, www.site.com/fruit/oranges等。我希望所有这些链接调用同一个Dart应用程序,并让该应用程序进行一些处理,然后将您重定向到所需的位置(“香蕉”页面与“橘子”页面)。这样,我避免了每个水果都有一个实际的HTML文件。相反,我可以有一个单独的着陆模板,其中填充了可变的水果数据。

我挂断的部分是将URL传递到Dart应用程序中,以便它可以进行处理。我了解main()无法接收参数,那又是什么呢?

最佳答案

您可以使用route package为您处理URL。

例如:

import 'package:route/client.dart';

final fruitUrl = new UrlPattern(r'/fruit/(\w+)');

main() {
var router = new Router()
..addHandler(fruitUrl, showFruit)
..listen();
}

void showFruit(String path) {
var fruit = fruitUrl.parse(req.path)[0];
// Display the page according to the fruit type
}

如果您不需要处理实际的路由,而只想处理以 ?fruit=apple形式传递的任何查询参数,则不必使用路由包,而可以手动解析URL:

Map params = {};

// If arguments were provided, decode them into params map
if(window.location.search.length > 1) {
// Break all arguments into form: fruit=apple
List<String> queryPairs = window.location.search.substring(1).split('&');
for(String queryPair in queryPairs) {
// Add arguments into params map: key=fruit, value=apple
List<String> queryPairList = queryPair.split('=');
params[queryPairList[0]] = queryPairList[1];
}
}

// Handle the proper action based on the fruit
switch(params['fruit']) {
case 'apple':
// ...
break;
// ...
case 'orange':
// ...
break;
}

关于dart - 将网址传递到Dart应用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223488/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com