带有导航的 Firebase Dynamic Link 导致无限循环
Firebase Dynamic Link with navigate cause infinity loop
我从 Firebase 控制台创建了一个 Firebase 动态 link。我已经尝试将它实现到我的代码中,当我通过使用导航方法单击 example.page.link/ABCD 冷启动我的应用程序时,它会导致无限循环。如果应用程序在后台,则没有任何问题。
问题:
当应用从冷启动并导航到新页面时无限循环触发。
知道如何解决这个问题吗?
Edited
示例 link:www.example.com/testing?title=testing_deep_link
Future firebaseDynamicLinkInit() async {
final PendingDynamicLinkData data =
await FirebaseDynamicLinks.instance.getInitialLink();
_handleDeepLink(data);
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLinkData) async {
_handleDeepLink(dynamicLinkData);
}, onError: (OnLinkErrorException e) async {
print('${e.message}');
});
}
void _handleDeepLink(PendingDynamicLinkData data) {
final Uri deepLink = data?.link;
if (deepLink != null) {
var title = deepLink.queryParameters['title'];
if (title != null) {
// START This part trigger the problem
Navigator.of(context).popUntil((route) => route.isFirst);
Navigator.of(context).pushReplacementNamed('/Pages', arguments: 6);
// END This part trigger the problem
}
}
return null;
}
线程已关闭
我为我的粗心道歉。
我发现了我犯的错误。我不应该使用导航推送,因为这条路线 '/Pages' 将重新创建页面和 运行 firebaseDynamicLinkInit() 一次又一次(无限循环)。
路由 '/Pages' initState() 包含 firebaseDynamicLinkInit() 导致无限循环。
// START This part trigger the problem
Navigator.of(context).popUntil((route) => route.isFirst);
Navigator.of(context).pushReplacementNamed('/Pages', arguments: 6);
// END This part trigger the problem
我从 Firebase 控制台创建了一个 Firebase 动态 link。我已经尝试将它实现到我的代码中,当我通过使用导航方法单击 example.page.link/ABCD 冷启动我的应用程序时,它会导致无限循环。如果应用程序在后台,则没有任何问题。
问题: 当应用从冷启动并导航到新页面时无限循环触发。
知道如何解决这个问题吗?
Edited
示例 link:www.example.com/testing?title=testing_deep_link
Future firebaseDynamicLinkInit() async {
final PendingDynamicLinkData data =
await FirebaseDynamicLinks.instance.getInitialLink();
_handleDeepLink(data);
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLinkData) async {
_handleDeepLink(dynamicLinkData);
}, onError: (OnLinkErrorException e) async {
print('${e.message}');
});
}
void _handleDeepLink(PendingDynamicLinkData data) {
final Uri deepLink = data?.link;
if (deepLink != null) {
var title = deepLink.queryParameters['title'];
if (title != null) {
// START This part trigger the problem
Navigator.of(context).popUntil((route) => route.isFirst);
Navigator.of(context).pushReplacementNamed('/Pages', arguments: 6);
// END This part trigger the problem
}
}
return null;
}
线程已关闭
我为我的粗心道歉。
我发现了我犯的错误。我不应该使用导航推送,因为这条路线 '/Pages' 将重新创建页面和 运行 firebaseDynamicLinkInit() 一次又一次(无限循环)。
路由 '/Pages' initState() 包含 firebaseDynamicLinkInit() 导致无限循环。
// START This part trigger the problem
Navigator.of(context).popUntil((route) => route.isFirst);
Navigator.of(context).pushReplacementNamed('/Pages', arguments: 6);
// END This part trigger the problem