[英]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
當單擊鏈接從開始重新打開應用程序並調用 getInitialLink 時,onLink 不起作用(這就是為什么我選擇 getinitiallink 平台的原因,因為在 ios 上這兩個功能都可以工作)。
當點擊鏈接時; 沒有像“使用 MyApp 打開”這樣的選項,因此鏈接不與 MyApp 關聯,在單擊瀏覽器后決定使用 MyApp 打開鏈接。 (好的,它有效但不酷)
如果我將此添加到 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.