簡體   English   中英

Firebase 動態鏈接在自定義域中無法正常工作

[英]Firebase dynamic link not working as expected with custom domain

我有 example.com 自定義域,我想通過動態鏈接邀請成員加入應用程序內的組。

我想使用 app.example.com/ 作為前綴。

已安裝所有庫,firebase 上的團隊 ID 為 ios 定義並使用新的谷歌服務 plist 導入。

所以我的 url 我准備滿足我的願望是這樣的(將其構建為短鏈接 app.example.com/SOMERANDOMTHING)

https://app.example.com/?link=https://example.com/joingroup?groupid=SOMEGROUPID&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp

在 iOS 上:

添加到 info.plist:

<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://app.example.com</string>
</array>

還添加了applinks:app.example.com到關聯域和 URL 方案,添加了 com.myorganization.myapp

我在組件上的代碼確實掛載了:

    componentDidMount() {

     var that = this

    dynamicLinks().onLink((link) => {

        
        that.handleDynamicLink(link)


    })


    if(Platform.OS == 'android') {


    dynamicLinks().getInitialLink().then((link2) => {

        if(link2) {

            

            that.handleDynamicLink(link2)

        }

問題

在 Android

  1. 當單擊鏈接從開始重新打開應用程序並調用 getInitialLink 時,onLink 不起作用(這就是為什么我選擇 getinitiallink 平台的原因,因為在 ios 上這兩個功能都可以工作)。

  2. 當點擊鏈接時; 沒有像“使用 MyApp 打開”這樣的選項,因此鏈接不與 MyApp 關聯,在單擊瀏覽器后決定使用 MyApp 打開鏈接。 (好的,它有效但不酷)

  3. 如果我將此添加到 AndroidManifest:

     <data android:host="app.example.com" android:scheme="http"/> <data android:host="app.example.com" android:scheme="https"/>

    這次鏈接打開我的應用程序和 android 識別鏈接屬於 MyApp 但 getInitialLink 和 onLink 都不起作用。

在 iOS

onLink 有效,但沒有將結果傳輸到應用程序; 它只是轉移所有鏈接

https://app.example.com/?link=https://example.com/joingroup?groupid=SOMEGROUPID&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp

代替

https://example.com/joingroup?groupid=SOMEGROUPID

所以我堅持這些問題,謝謝你的幫助

如果您使用一個鏈接作為另一個鏈接的參數,這是可能的。 我建議用以下內容替換它

https://app.example.com/?link=https%3A%2F%2Fexample.com%2Fjoingroup%3Fgroupid%3DSOMEGROUPID&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp

如果使用 JavaScript 手動創建鏈接,可以使用encodeURIComponent

const link = encodeURIComponent('https://example.com/joingroup?groupid=SOMEGROUPID');
const url = `https://app.example.com/?link=${link}&apn=com.myorganization.myapp&amv=4&ibi=com.myorganization.myapp&isi=TEAMID&imv=4&ius=myapp`;
console.log(url)

暫無
暫無

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

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