firebase - 当应用程序正在运行并且链接已被使用时,颤动动态链接导航失败
问题描述
我正在使用颤振动态链接,如果应用程序关闭,导航工作正常。但是当应用程序打开并且已经使用动态链接时,在这种情况下导航会失败。
这是我的代码
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,
),
),
);
}
上下文不可用?是这个原因吗?有人可以在这里指导吗?
解决方案
推荐阅读
- git - 从 post-commit git-hook 运行 grunt
- ionic-framework - 深层链接提供空路径
- android - 使用 ConstraintLayout 的 Android 可访问性
- javascript - 如何防止 jquery 提交按钮刷新 HTML 页面?
- javascript - Selenium webdriver - 页面结束(使用垂直滚动)
- angular - APP_INITIALIZE 后初始化模块
- android - 无法在 android 设备的省电模式下以编程方式检查网络信息
- xcode - Swift 4 隐藏视图并填补空白
- django - 如何在字典中保存元素倍数?
- node.js - 运行 `npm install xx`, `npm uninstall xx` 后,npm 如何知道如何更新 `package.json`