Dee*_*mod 6 flutter netlify flutter-dependencies flutter-web
我可以通过在搜索栏中输入 url 来更改托管在 netlify(手动部署)上的 flutter web的 url ,从而导航到其他页面,如下所示:-
因此,如果我将 /home 更改为 /about 那么它会完美地引导我到 about 页面。但是为了从我的网址中删除这个“#”,我在我的 main.dart我的代码中添加了以下代码 :-
import 'package:url_strategy/url_strategy.dart';
void main()async {
await Firebase.initializeApp();
setPathUrlStrategy();//this removes the '#' from my url
FluroRouting.setupRouter();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'My Website',
theme: ThemeData(
primarySwatch: Colors.blue,
),
initialRoute: '/home',
onGenerateRoute: FluroRouting.router.generator,
);
}
}
Run Code Online (Sandbox Code Playgroud)
路由代码是:-
class FluroRouting {
static final router = FluroRouter();
static Handler _aboutUsHandler = Handler(
handlerFunc: (BuildContext context, Map<String, dynamic> params) =>
AboutUs());
static Handler _homeHandler = Handler(
handlerFunc: (BuildContext context, Map<String, dynamic> params) =>
HomePage());
static void setupRouter() {
router.define('/home', handler: _homeHandler,);
router.define('/about', handler: _aboutUsHandler,);
}
static void navigateToPage({String routeName,BuildContext context}) {
router.navigateTo(context, routeName, transition: TransitionType.none);
}
static void pushAndClearStackToPage({String routeName,BuildContext context}) {
router.navigateTo(context, routeName, clearStack: true,transition: TransitionType.none);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 -1
我找到了这个问题的解决方案,至少就我而言,我最好的猜测是,在免费部署中配置路径域以测试 Surge、netlify 甚至 Firebase 托管等网站的方式破坏了 setPathURl() 的功能。我使用了之前购买的一个域名,它的工作方式就像一个魅力,但如果我尝试使用 firebase 托管域名访问同一个网站,它就不起作用。
使用真实域来测试 usePathUrlStrategy 的功能
归档时间: |
|
查看次数: |
3897 次 |
最近记录: |