在 flutter web 中直接使用 url 参数导航到网页
Navigate to a webpage directly with url parameters in flutter web
我正在为带有 flutter web 的文章创建一个简单的网络应用程序,用户可以使用 link 导航到特定文章,参数包含文章 ID,如 webpage.com/articles/123
。到目前为止,我有阅读并尝试了一堆东西,但没有任何效果。我能够从 URL 中提取 ID。但是,当用户尝试在地址栏中执行此操作并且用户被重定向到主页时,不会显示任何页面。我怎样才能做到这一点。
您需要在 Material 应用中添加路线:
home: ProjectPage(),
routes: <String, WidgetBuilder>{
'/home': (BuildContext context) => HomePage(),
'/login': (BuildContext context) => LoginPage(),
},
首先,您需要使用路由导航并在MaterialApp
class中定义它们。正确完成后,您的 Flutter 应用程序将直接启动特定的 ArticlesScreens
- 然后您可以共享 link(例如 webpage.com/articles/123
),将其粘贴到您的浏览器中,然后登陆您应用程序的 [=14] =] 显示 ID 为 123
.
的文章
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
onGenerateRoute: (settings) {
if (settings.name.contains("/articles/")) {
//parse the URL and get the article ID here
final String articleId = getArticleIdFromUrl(settings.name);
return ArticleScreen(articleId: articleId);
}
switch (settings.name) {
case "/":
return MainScreen();
default:
return MainScreen();
}
},
initialRoute: "/",
);
}
我尝试了软件包 flutter_modular,效果很好。
我正在为带有 flutter web 的文章创建一个简单的网络应用程序,用户可以使用 link 导航到特定文章,参数包含文章 ID,如 webpage.com/articles/123
。到目前为止,我有阅读并尝试了一堆东西,但没有任何效果。我能够从 URL 中提取 ID。但是,当用户尝试在地址栏中执行此操作并且用户被重定向到主页时,不会显示任何页面。我怎样才能做到这一点。
您需要在 Material 应用中添加路线:
home: ProjectPage(),
routes: <String, WidgetBuilder>{
'/home': (BuildContext context) => HomePage(),
'/login': (BuildContext context) => LoginPage(),
},
首先,您需要使用路由导航并在MaterialApp
class中定义它们。正确完成后,您的 Flutter 应用程序将直接启动特定的 ArticlesScreens
- 然后您可以共享 link(例如 webpage.com/articles/123
),将其粘贴到您的浏览器中,然后登陆您应用程序的 [=14] =] 显示 ID 为 123
.
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
onGenerateRoute: (settings) {
if (settings.name.contains("/articles/")) {
//parse the URL and get the article ID here
final String articleId = getArticleIdFromUrl(settings.name);
return ArticleScreen(articleId: articleId);
}
switch (settings.name) {
case "/":
return MainScreen();
default:
return MainScreen();
}
},
initialRoute: "/",
);
}
我尝试了软件包 flutter_modular,效果很好。