无法在我的应用程序的动态链接中传递动态查询参数

时间:2020-11-11 20:13:26

标签: android firebase flutter dart firebase-dynamic-links

我已经读过此Link

看起来像一个类似的问题,但是不幸的是,这并没有帮助我

创建深度链接

static Future<String> createDeppLink(String id) async {
    String prefix = "https://skribbll.page.link";
    final DynamicLinkParameters par = DynamicLinkParameters(
      uriPrefix: prefix,
      link: Uri.parse("https://skribbll.page.link/join/?id=$id"),
      androidParameters: AndroidParameters(
          packageName: "com.example.Skribbl", minimumVersion: 0),
      iosParameters: IosParameters(
        bundleId: 'com.example.Skribbl',
        minimumVersion: '1',
        appStoreId: '',
      ),
    );
    final Uri dynamicUrl = await par.buildUrl();

    print(dynamicUrl);
    final ShortDynamicLink shortenedLink =
        await DynamicLinkParameters.shortenUrl(
      dynamicUrl,
      DynamicLinkParametersOptions(
          shortDynamicLinkPathLength: ShortDynamicLinkPathLength.unguessable),
    );
    print(shortenedLink.shortUrl);
    String url = shortenedLink.shortUrl.toString();
    return url;
  }

处理深层链接

  static Future handleDynamicLinks() async {
    print("Coming to handle dynamic links");
    await Future.delayed(Duration(seconds: 3));
    var value = await FirebaseDynamicLinks.instance.getInitialLink();
    var x = handleDeepLinkData(value);
    print(x);
    FirebaseDynamicLinks.instance.onLink(onSuccess: (dynamicLink) async {
      var x = handleDeepLinkData(dynamicLink);
      print("Inside listener");
      print(x);
    }, onError: (e) async {
      debugPrint('DynamicLinks onError $e');
    });
    return x;
  }

  static handleDeepLinkData(PendingDynamicLinkData data) {
    print("Coming to handle deep link data");
    print(data);

    if (data == null) return null;
    final Uri deepLink = data?.link;

    if (deepLink != null) {
      print(deepLink);
      if (deepLink.path.contains("join")) {
        print(deepLink.queryParametersAll);
        print(deepLink.queryParameters['id']);
        return deepLink.queryParameters['id'];
      }
    }
  }

我找到了很多答案,并尝试调整几乎所有内容,但在创建深层链接时仍然没有传递id参数
我得到的是在设置DynamicLink时在FireBase控制台中添加了演示数据 在FireBase控制台中,我已经设置了

短链接网址-> https://skribbll.page.link/join
动态链接网址-> https://skribbll.page.link/join?id=5

当我没有通过控制台进行设置时,就不会重定向到我的应用程序
我不知道自己在做什么错,任何帮助都可以节省很多时间
提前谢谢
我想在尝试生成完整网址时添加一件事,它看起来像这样,并在其中包含ID
如果这有什么帮助

https://skribbll.page.link?apn=com.example.Skribbl&link=https%3A%2F%2Fskribbll.page.link%2Fjoin%3Fid%3DqMj2YBTKATcPHYDsnQNq

1 个答案:

答案 0 :(得分:1)

您可以根据doc's使用?d=1调试链接。在您帖子中提供的链接上找到警告。 These were the warnings I found when running on yours

我发现this博客在设置我的博客时特别有用。