# #firebase #flutter #dart #firebase-dynamic-links
Вопрос:
я использую динамические ссылки flutter, навигация работает нормально, если приложение закрыто. но когда приложение открыто и динамическая ссылка уже используется, в этом случае навигация завершается неудачно.
вот мой код
loadingscreen.dart
Future<void> initDynamicLinks() async {
print("initDynamicLinks");
//when app is in background
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData? dynamicLink) async {
final Uri? deepLink = dynamicLink?.link;
if (deepLink != null) {
// ignore: unawaited_futures
_handleDynamicLink(deepLink);
} else {
_navigateToHomePage();
}
}, onError: (OnLinkErrorException e) async {
print('onLinkError');
print(e.message);
});
// app in forground
final PendingDynamicLinkData? data =
await FirebaseDynamicLinks.instance.getInitialLink();
final Uri? deepLink = data?.link;
if (deepLink != null) {
// ignore: unawaited_futures
_handleDynamicLink(deepLink);
} else {
_navigateToHomePage();
}
}
_navigateToHomePage() {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => HomeScreen(
deepLinkId: 0,
),
),
);
}
_handleDynamicLink(Uri url) {
String? storyId = url.queryParameters['storyId'];
int deepLinkId = int.parse('$storyId');
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => HomeScreen(
deepLinkId: deepLinkId,
),
),
);
}
контекст недоступен? в этом ли причина? может ли кто-нибудь помочь здесь?