If you want to remove the leading hash (#) from the URL of your Flutter web app, you can simply call setPathUrlStrategy in the main function of your app and use url_strategy package.
import 'package:url_strategy/url_strategy.dart';
void main() {
// Here we set the URL strategy for our web app.
// It is safe to call this function when running on mobile or desktop as well.
setPathUrlStrategy();
runApp(MyApp());
}
Here is the complete code from main.dart file.
import 'package:flutter/material.dart';
import 'package:url_strategy/url_strategy.dart';
void main() {
setPathUrlStrategy();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@
override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
initialRoute: '/',
routes: {
'/': (context) => HomePage(),
'/about': (context) => AboutPage(),
},
);
}
}
class HomePage extends StatelessWidget {
@
override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Home')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Welcome to the home page'),
TextButton(
child: Text('Go to About page'),
onPressed: () {
Navigator.pushNamed(context, '/about');
},
),
],
),
),
);
}
}
class AboutPage extends StatelessWidget {
@
override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('About')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('This is the about page'),
TextButton(
child: Text('Go back to Home page'),
onPressed: () {
Navigator.pop(context);
},
),
],
),
),
);
}
}
Thanks.