A Firebase Dynamic Links egy Google-szolgáltatás intelligens linkek létrehozására, amelyek a felhasználót az alkalmazás megfelelő helyére irányítják, függetlenül attól, hogy az alkalmazás telepítve van-e vagy sem. A Firebase Documentation szerint a Dynamic Links automatikusan átirányítja a felhasználót az App Store-ba vagy a Google Play-be, ha az alkalmazás hiányzik, és visszaállítja az átmenet kontextusát a telepítés után. A Firebase Smart-linkjei megoldják az URL Scheme problémáját, amely nem működik nem telepített alkalmazásokkal.
Főbb pontok
A Firebase Dynamic Links egy Google-felhőszolgáltatás, amely egységes univerzális linkeket hoz létre mobilalkalmazásokhoz iOS-en és Androidon. A dinamikus link egy mély linket tartalmaz az alkalmazáson belüli tartalomhoz, de úgy viselkedik, mint egy szokványos HTTPS-link: ha az alkalmazás telepítve van, közvetlenül megnyitja, ha nem — átirányít az alkalmazásáruházba.
A szokványos URL Scheme-ektől eltérően a Dynamic Links működhet nem telepített alkalmazásokkal a deferred deep link technológiának köszönhetően. Amikor a felhasználó a linkre kattintás után telepíti az alkalmazást, a Firebase elmenti az átmenet paramétereit, és továbbítja azokat az első indításkor. Ez lehetőségeket nyit meg ajánló programok, marketingkampányok és meghívók számára.
Az URL Scheme-ek telepített alkalmazást igényelnek, és nincs szabványos fallback mechanizmusuk. A Firebase Dynamic Links ezt a problémát egy közvetítő Firebase webszolgáltatáson keresztül oldja meg, amely meghatározza az alkalmazás telepítési állapotát az eszközön, és helyesen útvonalazza a felhasználót. Egyetlen link ugyanúgy működik mindkét platformon.
A Firebase Dynamic Link egy yourcode.page.link formájumú domaint használ, amely a Firebase Console-ban van regisztrálva. Amikor egy felhasználó egy ilyen linken keresztül navigál, a Firebase meghatározza az eszköz típusát és az alkalmazás telepítési állapotát. iOS esetén a Universal Links mechanizmus, Android esetén az App Links automatikus ellenőrzéssel, a Digital Asset Links-en keresztül kerül használatra.
A feldolgozási folyamat több egymást követő szakaszból áll: a linkre kattintáskor a böngésző GET kérelmet küld a Firebase-szervernek, a szerver meghatározza a platformot és ellenőrzi az alkalmazás jelenlétét az eszközön. Ha az alkalmazás telepítve van — átirányítás történik egy Universal Linkre vagy Intent-re a céloldal megnyitásához szükséges paraméterekkel. Ha az alkalmazás nincs telepítve — átirányítás az App Store-ba vagy a Google Play-be a letöltéshez.
Az alkalmazás a linket a Firebase SDK inicializálásának szakaszaiban kapja. A getDynamicLink() metódus egy PendingResult-ot ad vissza az átmenet adataival. Sikeres fogadás után a linkből kinyerésre kerülnek a mély link paraméterei, az analitikai UTM-címkék és a link létrehozásakor továbbított tetszőleges adatok.
A Firebase Console vizuális felületet biztosít a Dynamic Links létrehozásához. A fejlesztő megadja a mély linket (deep link URL), a kampány nevét, az iOS és Android különálló beállításait, valamint az analitikai paramétereit. A létrehozás után a Firebase egy rövid linket generál https://yourcode.page.link/abc123 formában, amely reklámanyagokban, e-mail kampányokban és közösségi médiában használható.
Programozott Dynamic Links létrehozáshoz a Firebase REST API vagy a kliens SDK használható. A REST API lehetővé teszi linkek tömeges generálását marketingkampányokhoz egyedi paraméterekkel, beleértve a közösségi médiához készült linket és az átmenetek aszinkron analitikáját. API-n keresztüli linkek létrehozásakor fontos a socialMetaTagInfo paraméterek helyes megadása — ezek határozzák meg, hogy a link hogyan jelenik meg üzenetküldőkben és közösségi oldalakon előnézeti kártyával történő megosztáskor.
| Paraméter | Cél | Kötelező |
|---|---|---|
| Deep Link URL | Belső link az alkalmazás tartalmához | Igen |
| iOS Bundle ID | Az alkalmazás azonosítója az App Store-ban | iOS-hez |
| Android Package Name | Csomagnév a Google Play-ben | Androidhoz |
| Fallback URL | Weboldal az alkalmazás hiányában | Nem |
| UTM-címkék | Paraméterek a Google Analytics számára | Nem |
A Firebase Dynamic Links iOS-en történő használatához csatlakoztatni kell a Firebase SDK-t CocoaPods vagy Swift Package Manager segítségével, be kell állítani az Info.plist-et a GOOGLE_APP_ID-val, és regisztrálni kell a Dynamic Links domaint a projekt Associated Domains részében. Ezután az alkalmazás automatikusan feldolgozza a Firebase által generált Universal Links-eket.
Az Xcode-ban hozzá kell adni az Associated Domains képességet applinks:yourcode.page.link formájumú bejegyzéssel. A Firebase SDK az application(_:continue:restorationHandler:) metódust használja a Universal Links feldolgozásához, így nincs szükség további integrációra az AppDelegate-dzsel — a Firebase automatikusan kinyeri a Dynamic Link paramétereit a User Activity-ből.
Példa az Info.plist konfigurációjára a Firebase helyes inicializálásához és a Dynamic Links kezelő regisztrálásához. A FIROptions kulcsnak tartalmaznia kell a GoogleService-Info.plist projektazonosítót.
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
Ha az AppDelegate proxy le van tiltva, manuálisan kell meghívni a handleUniversalLink(_:) metódust, és továbbítani a User Activity-t a continue NSUserActivity-ból. A Firebase SDK automatikusan kinyeri a link paramétereit, és visszaadja a DynamicLink-et a completion handleren keresztül.
Androidon a Firebase Dynamic Links integrációja a függőségek build.gradle-be történő hozzáadásával és a Firebase Console-ból származó google-services.json fájl hozzáadásával kezdődik. A Dynamic Links domaint a Firebase Console-ban regisztrálják, ami után az ezzel a domaintel rendelkező összes linket automatikusan felismeri az Android-alkalmazás egy VIEW műveletű Intent Filteren keresztül. A helyes működéshez hozzá kell adni a Google Services bővítményt a gyökér és modul build.gradle-hez, és el kell végezni a Gradle szinkronizációt.
A linkek helyes feldolgozásához Androidon Intent Filter-t kell hozzáadni a Dynamic Links domainhez abban az Activity-ben, amelynek fogadnia kell a beérkező linkeket. A szűrőnek tartalmaznia kell a https sémát, az Ön Dynamic Links domainjének hostját és az alapértelmezett útvonalat.
Példa Intent Filter-re az AndroidManifest.xml-ben a Dynamic Links fogadására a yourcode.page.link domainen.
<activity android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter
android:autoVerify="true">
<action
android:name="android.intent.action.VIEW" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="yourcode.page.link" />
</intent-filter>
</activity>
Fontos, hogy a Dynamic Links-et fogadó Activity számára a launchMode singleTask értékre legyen állítva. Ez megakadályozza új Activity-példány létrehozását a linken keresztüli ismételt navigáció során, és lehetővé teszi az összes beérkező mély link helyes feldolgozását egyetlen példányban.
Az Android Firebase SDK biztosítja a FirebaseDynamicLinks.getInstance().getDynamicLink(intent) metódust, amely egy PendingTask objektumot ad vissza a link adataival. A DynamicLink objektumból kinyerésre kerül a mély URI, az UTM paraméterek és az átmenet időbélyegje. A feldolgozást az Activity onCreate() és onNewIntent() metódusaiban ajánlott végezni.
A feldolgozáskor fontos figyelembe venni, hogy a Dynamic Link mind az alkalmazás hidegindításakor (cold start), mind pedig egy másik alkalmazásból egy már futó alkalmazásba történő átmenetkor érkezhet. A második esetben felül kell írni az onNewIntent() metódust, és újra meg kell hívni a Dynamic Link ellenőrzést.
Példa a Firebase Dynamic Link fogadására és feldolgozására a MainActivity-ben. A kód mind a cold start-ot, mind a másik alkalmazásból érkező átmenetet kezeli.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
checkDynamicLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
checkDynamicLink(intent)
}
private fun checkDynamicLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener link ->
val deepLink = link?.link.toString()
handleDeepLink(deepLink)
}
}
}
A addOnSuccessListener metódus visszaadja a DynamicLink-et, amelyből a cél link a link?.link-en keresztül kerül kinyerésre. Ha a listener null értéket ad vissza, az azt jelenti, hogy az Intent nem tartalmaz Dynamic Link-et — ez az alkalmazás normál indítása beérkező link nélkül. Ezenkívül elérhetők az UTM-címkék az átmenet analitikájához, beleértve a campaign, medium, source és content paramétereket, amelyek továbbíthatók a Google Analytics-be az egyes marketingcsatornák hatékonyságának részletes értékeléséhez.
Gyakran Ismételt Kérdések
A Firebase Dynamic Links támogatja a deferred deep link funkciót — a link megtartja a kontextust akkor is, ha az alkalmazás nincs telepítve. A telepítés után az alkalmazás megkapja az összes átmeneti paramétert, ami a szokványos URL Scheme-ekkel vagy Universal Links-szel lehetetlen.
A Firebase Dynamic Links a Firebase Spark ingyenes díjcsomag része. Nincs korlátozás a létrehozható linkek számára. 2024-től azonban a Google áttérést jelentett be új infrastruktúrára, így a feltételek változhatnak.
A Dynamic Links mobilalkalmazásokhoz készültek. Asztali böngészőből történő eléréskor a link megnyitja a fallback URL-t. Webes alkalmazásokhoz használjon szokványos linkeket vagy saját átirányítási logikát.
A Firebase Console Test Dynamic Link gombot biztosít a viselkedés előnézetéhez. Használhat továbbá Android-emulátort vagy iOS-szimulátort telepített Firebase SDK-val az összes átmeneti forgatókönyv helyi teszteléséhez.
A rövid Firebase Dynamic Link a page.link domainből és egy kb. 7 karakter hosszú véletlen utótagból áll. A teljes hossz kb. 30 karakter. A belső mély link bármilyen hosszúságú lehet, de a kompatibilitás érdekében ajánlott 2 KB-ra korlátozni.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is