Firebase Dynami c Связывает перенаправления в playstore даже с установленным приложением - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь создать динамические c ссылки в Firebase, которые перенаправят пользователей на указанную c страницу в моем приложении. Мне удалось создать ссылку, и она иногда работает, но иногда она перенаправляется в PlayStore даже после установки приложения. Я делаю это на физическом устройстве Android.

Что мне удалось понять, так это то, что если мое браузерное приложение (Chrome) открыто на фоне устройства, когда я нажимаю ссылку (то есть в SMS-сообщении или в WhatsApp) я попал в приложение (поведение, которое я хочу). В этой настройке он работает последовательно (разные ссылки, когда мое приложение открыто и закрыто в фоновом режиме)

Однако, если я нажимаю на ссылку, а приложение браузера не открывается в фоновом режиме, оно переводит меня в PlayStore .

Вот код, который я должен создать для ссылки:

Future<void> _createDynamicLink(bool short) async {
    final DynamicLinkParameters parameters = DynamicLinkParameters(
      uriPrefix: 'https://myappname.page.link',
      link: Uri.parse('https://myappname/?gameCode=1111111'),
      androidParameters: AndroidParameters(
        packageName: 'com.last.myquarentineproject',
        minimumVersion: 0,
      ),
      dynamicLinkParametersOptions: DynamicLinkParametersOptions(
        shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
      ),
      socialMetaTagParameters: SocialMetaTagParameters(
        title: 'Example Title',
        description: 'Example Description',
      ),
    );

    Uri url;
    if (short) {
      final ShortDynamicLink shortLink = await parameters.buildShortLink();
      url = shortLink.shortUrl;
    } else {
      url = await parameters.buildUrl();
    }
  }

А вот код, который я использую для получения ссылки:


void initState() {
    handleDynamicLinks();
...
}

  void handleDynamicLinks() async {
    final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
    _handleDeepLink(data);

    FirebaseDynamicLinks.instance.onLink(
        onSuccess: (PendingDynamicLinkData dynamicLink) async {
          _handleDeepLink(dynamicLink);
        }, onError: (OnLinkErrorException e) async {
      print('Link Failed: ${e.message}');
    });
  }

  void _handleDeepLink(PendingDynamicLinkData data) {
    final Uri deepLink = data?.link;
    if (deepLink != null) {
      receivedGameCode = deepLink.queryParameters['gameCode'];
      print('receivedGameCode: $receivedGameCode');
      print('_handleDeepLink | deeplink: $deepLink');
      Navigator.pushNamed(context, '/joingGame');

    } else { print('_handleDeepLink | deeplink: NO LINK'); }
  }

Любая помощь высоко ценится! Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...