在 Flutter 中,我使用 Navigator 2.0 和 go_router。
我希望我的应用程序中的深层链接能够正常工作,并且我的应用程序有一些属性需要在进入任何屏幕之前进行初始化,所以我将我的 MaterialApp.router(...) 放在一个条件布尔值中,并且在应用程序时显示启动画面正在初始化中。
但是当应用程序在 iOS 上关闭时,deeplink 不会重定向到给定路径,它只是打开应用程序。 在 android 中一切正常。
当我从 MaterialApp 中删除异步应用程序初始化功能时,它在 iOS 中也开始正常工作。
我做错了什么?有没有更好的方法来初始化应用程序而不是在 MaterialApp 中进行条件检查。
我已经创建了一个基本的可重现代码 repo https://github.com/sgshivamgarg8/testapp。请尝试一下。为了测试深层链接,我将所需的脚本放在脚本/文件夹中。
Future<void> _appInit() async {
setState(() {
isLoading = true;
});
await Future.delayed(
const Duration(seconds: 1)); // commenting this line solves the issue
setState(() {
isLoading = false;
});
}
@override
Widget build(BuildContext context) {
return isLoading
? const CircularProgressIndicator()
: MaterialApp.router(
routerConfig: _router,
title: 'Test',
theme: ThemeData.light(),
debugShowCheckedModeBanner: false,
);
我也面临同样的问题。我正在使用 Uni_links。在安卓上一切正常。但是在 ios 上,单击任何深层链接都会打开应用程序,但不会打开我希望它打开的路线。它只是正常打开应用程序。