i am using flutter dynamic links, the naviation works fine if the app is closed. but when the app is opened and dynamic link is already used, in that case the navigation fails.
here is my code
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,
),
),
);
}
the context is not available? is that the reason? can someone guide here?