首页 > 解决方案 > 当应用程序正在运行并且链接已被使用时,颤动动态链接导航失败

问题描述

我正在使用颤振动态链接,如果应用程序关闭,导航工作正常。但是当应用程序打开并且已经使用动态链接时,在这种情况下导航会失败。

这是我的代码

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,
        ),
      ),
    );
  }

上下文不可用?是这个原因吗?有人可以在这里指导吗?

标签: firebaseflutterdartfirebase-dynamic-links

解决方案


推荐阅读