簡體   English   中英

getInitialLink 不工作,但 onLink 在 react-native-firebase v6 中工作

[英]getInitialLink is not working but onLink is working in react-native-firebase v6

我在 App.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)
      }
    })
  }

單擊動態鏈接時:當應用程序處於活動狀態時,將觸發 onLink 處理程序並且應用程序正確處理它。 但是當應用程序關閉時,getInitialLink 返回一個 null。 獲取初始鏈接的任何解決方案?

我正在使用 react-native-firebase v6,react-native 對應於 expo 36。安裝是按照新的 react-native-firebase 快速啟動進行的 我正在使用 iOS 應用程序。

我現在也在 iOS 上遇到了這個問題。 我不確定這是否是一個好的解決方法,因為我還沒有投入生產,但是當應用程序不在后台時,我可以在 iOS 上運行的一種方法是在我的啟動畫面中使用來自 RN 的 Linking 包:

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

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

然后在 MainFeed 屏幕上的 componentDidMount 上,我為 onLink 設置了一個偵聽器。 由於我們現在在應用程序打開時調用 openURL,來自 firebase 的 onLink 觸發,我能夠解析深層鏈接並將用戶路由到他們需要去的地方。

我還沒有測試過這種方法是否允許鏈接持久化應用商店安裝

編輯:我已經對此進行了測試,並且一直有效。 通過應用商店/谷歌播放下載鏈接仍然存在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM