从Deeplink打开时如何刷新应用程序?

时间:2018-12-18 09:36:42

标签: firebase react-native firebase-dynamic-links

我正在努力使用本机应用程序。我会实现React Native Firebase动态链接,但是现在我有点迷路了。我在HomeScreen上使用此方法,每次有人打开应用程序时,它都能完美运行。

db.adminCommand({renameCollection: "db1.test1", to: "db2.test2"})

但是,当应用程序已经打开时,此方法将无法正常工作。每当有人回到打开的应用程序时,有什么方法可以触发功能吗?

1 个答案:

答案 0 :(得分:4)

提示,您应该将代码放在componentDidMount中,以免阻塞初始(第一个)渲染。

您可以使用AppState侦听在后台/前景中放置的应用程序的更改。

componentDidMount() {
  this.showPreview();
  AppState.addEventListener('change', this.onAppStateChange);
}

componentWillUnmount() {
  AppState.removeEventListener('change', this.onAppStateChange);
}

const onAppStateChange = appState => {
  // You can check if appState is active/background/foreground
  this.showPreview();
}

const showPreview = async (appState) => {
    // You can check if appState is active/inactive/background
    try {
      let url = await firebase.links().getInitialLink();
      if(url) {
        let api = "example.com/user/123456";
        try {
          this.setState({ data: "John Doe" });
          this.props.navigation.navigate('Preview', {user: this.state.data })
        }
        catch {
        }
      }
    }
    catch(e) {
      console.error(e);
    }
}