getInitialLink не работает, но onLink работает вact-native-firebase v6 - PullRequest
0 голосов
/ 14 февраля 2020

Я использую следующий код в приложении. js - componentDidMount

    firebase
      .dynamicLinks()
      .getInitialLink()
      .then(link => {
        if (link) {
          if (link.url.includes('/s/')) {
            this.handleSignupURL(link.url)
          }
        }
      })


    firebase.dynamicLinks().onLink(({ url }) => {
      if (url && url.includes('/s/')) {
        this.handleSignupURL(url)
      }
    })
  }

При нажатии на ссылку Dynami c: когда приложение активно, запускается обработчик onLink, и приложение обрабатывает его правильно. Но когда приложение закрыто, getInitialLink возвращает ноль. Любое решение, чтобы получить начальную ссылку?

Я использую Resact-native-FireBase v6, React-Native, соответствующий EXPO 36. Установка выполняется в соответствии с новым быстрым стартом React-Native-FireBase . Я использую приложение iOS.

1 Ответ

1 голос
/ 26 февраля 2020

Я сейчас тоже сталкиваюсь с этой проблемой на iOS. Я не уверен, что это хороший обходной путь, поскольку я еще не отправил в производство, но один из способов заставить работать на iOS, когда приложение не работает в фоновом режиме, это использовать пакет Linking от RN, как в моем spla sh screen:

        Linking.getInitialURL().then((url) => {
            if (url){
                Linking.openURL(url).then((response) => {
                    Actions.reset('MainFeed');
                });

            } else {
                console.log('no url');
                Actions.reset('MainFeed');
            }
        });

Затем на моем componentDidMount на экране MainFeed я настроил прослушиватель для onLink. Так как теперь мы вызываем openURL, когда приложение открыто, запускается onLink из firebase, и я могу проанализировать глубокую ссылку и направить пользователя туда, куда ему нужно go.

Я не проверял, позволяет ли этот метод сохранять ссылки при сохранении установки магазина приложений

РЕДАКТИРОВАТЬ: Я проверил это, и он работает все время. Ссылка сохраняется при загрузке через магазин приложений / Google Play

...