App Link: mi ez, működési elv és beállítás

Szerző: IT Sectr Megjelenés: 2026-05-14 Olvasási idő: 9 perc

Az App Link egy Android-mechanizmus (Android 6.0+), amely automatikusan megnyitja a webes linkeket a telepített alkalmazásban, megkerülve a kiválasztási párbeszédablakot. A kifejezést a Google vezette be 2015-ben az Android 6.0 Marshmallow-val együtt. A Android Developers szerint az App Link a Digital Asset Links-et használja — egy kriptográfiai hitelesítést a szerveren lévő fájlon keresztül, amely megerősíti, hogy a tartomány az alkalmazás fejlesztőjéhez tartozik.

Főbb pontok

  • App Link — HTTPS-link, amely automatikusan megnyitja az alkalmazást kiválasztási párbeszédablak nélkül
  • Digital Asset Links — assetlinks.json JSON-fájl a szerveren, amely hitelesíti a tartomány kapcsolatát az alkalmazással
  • SHA256 ujjlenyomat a tanúsítványról — a hitelesítés kulcseleme, amely összeköti a fejlesztőt a tartománnyal
  • Intent Filter — Android-komponens, amely deklarálja, hogy az alkalmazás mely linkeket dolgozza fel
  • Biztonság — az App Link kiküszöböli a „Megnyitás alkalmazásban vagy böngészőben” párbeszédablakot, növelve a konverziót

App Link (Android App Link) — egy szabványos HTTPS-link, amely Android-eszközön kattintva automatikusan megnyitja a telepített alkalmazást anélkül, hogy megjelenítené a szabványos kiválasztási párbeszédablakot a böngésző és az alkalmazás között. A Google az App Link-et az Android 6.0-ban (API 23) vezette be a „kiválasztási párbeszédablak” problémájának megoldásaként, amely a deep link konverzióját csökkentette a plusz kattintás és a felhasználói zavar miatt.

Kulcsfontosságú újítás: hitelesítés. Az Android ellenőrzi, hogy a tartomány valóban az alkalmazás fejlesztőjéhez tartozik-e a Digital Asset Links API-n keresztül. A Google Play Store ellenőrzi az App Link-et publikáláskor, és elutasíthatja a frissítést, ha a hitelesítés sikertelen. Ez biztonságosabbá teszi az App Link-et, mint a Custom URL Scheme: egyetlen más alkalmazás sem tudja elfogni a linket az Ön tartományához.

Digital Asset Links — egy nyílt protokoll, amelyet a Google nemcsak az App Link-hez használ, hanem a weboldalak alkalmazásokkal való összekapcsolásához is a keresési eredményekben, a Google Assistant-ban és a Smart Lock for Passwords-ben. A protokoll kriptográfiai hitelesítésen alapul: az assetlinks.json fájlban meg van adva az alkalmazás aláírási tanúsítványának SHA256 ujjlenyomata, ami kizárja a hamisítást.

Az App Link működési folyamata három szakaszból áll: a Digital Asset Links hitelesítése, feldolgozás Intent Filter-en keresztül és automatikus átirányítás. Minden szakasz kötelező. Ha a hitelesítés sikertelen, az Android megjeleníti a kiválasztási párbeszédablakot — az ilyen deep link úgy működik, mint egy szokásos, de az automatikus átirányítás előnye nélkül.

Digital Asset Links (assetlinks.json)

Asset Links — JSON-fájl, amely a szerveren található a https://domain/.well-known/assetlinks.json címen. A fájl objektumok tömbjét tartalmazza a következő mezőkkel: relation (a kapcsolat típusát leíró karakterláncok tömbje), target (objektum az alkalmazás namespace és package_name mezőjével, valamint sha256_cert_fingerprints — az aláírási tanúsítvány SHA256 ujjlenyomatainak tömbje).

json
// assetlinks.json — az App Link minimális konfigurációja
[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
        "namespace": "android_app",
        "package_name": "com.example.app",
        "sha256_cert_fingerprints": [
            "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:AD:A4:C5:AD:6B:01:14:79:6B:CB:12:6B:21:39:6F:EA"
        ]
    }
}]

SHA256 ujjlenyomat abból a tanúsítványból származik, amellyel az alkalmazást aláírták. Debug buildhez a szabványos Android debug tanúsítványt használják, release-hez — a Google Play Console tanúsítványát vagy a saját tanúsítványát. Fontos: az aláírási tanúsítvány megváltoztatásakor (pl. az App Signing by Google Play-re való áttéréskor) frissíteni kell az assetlinks.json-t a szerveren, különben az App Link leáll.

Intent Filter és hitelesítés

Android ellenőrzi az App Link-et az első linkre kattintáskor. A rendszer letölti az assetlinks.json-t a szerverről, összehasonlítja a package_name-t és az SHA256 ujjlenyomatot a telepített alkalmazás tanúsítványával. Ha az adatok egyeznek, az Android megjelöli az Intent Filter-t hitelesítettként, és az összes további link ehhez a tartományhoz automatikusan, párbeszédablak nélkül nyílik meg.

xml
// AndroidManifest.xml — Intent Filter az App Link-hez
<activity
    android:name=".ui.ProductActivity"
    android:exported="true">
    <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="example.com"
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

autoVerify="true" — a kötelező attribútum, amely utasítja az Androidot az assetlinks.json ellenőrzésére. Ezen attribútum nélkül az Intent Filter nem lesz hitelesítve, és az App Link nem aktiválódik. Az Android több Intent Filter-t támogat egy Activity-ben — különböző hosztokhoz. A rendszer minden hosztot külön ellenőriz. A hitelesítés aszinkron módon történik, és az első átmenetkor akár 20 másodpercig is eltarthat.

Automatikus átirányítás (Automatic Redirect)

Sikeres hitelesítés után az Android automatikusan megnyitja az alkalmazást, amikor a felhasználó bármely olyan linkre kattint, amely megfelel a hitelesített Intent Filter-nek. A felhasználó nem lát kiválasztási párbeszédablakot — az alkalmazás azonnal megnyílik. Ha az alkalmazás nincs telepítve, a link a böngészőben nyílik meg (mint egy szokásos weboldal). Ez az ideális felhasználói élmény: zökkenőmentes átmenet felesleges műveletek nélkül.

Fontos: az automatikus átirányítás csak a HTTPS-séma esetén működik. Az App Link nem támogatja a HTTP-t (nem biztonságos protokoll). Ha a felhasználó manuálisan nyit meg egy HTTP-linket (pl. SMS-ből), az Android nem végez hitelesítést, és megjeleníti a kiválasztási párbeszédablakot. Javasolt a HTTPS használata minden olyan linkhez, amely az alkalmazásba vezet, és HTTP → HTTPS átirányítás beállítása a szerveren.

Az App Link a Deep Link evolúciója Androidon, nem pedig helyettesítője. A különbség közöttük alapvető. Szokásos Deep Link (Custom URL Scheme) egy Intent Filter-en keresztül működik egyéni sémával (myapp://) és autoVerify nélkül. Az Android nem ellenőrzi, hogy az alkalmazás valóban kapcsolódik-e ehhez a sémához — bármely alkalmazás regisztrálhatja a myapp://-t és elkaphatja a linkeket.

App Link három problémát old meg a Deep Link-kel kapcsolatban. Első: biztonság — a Digital Asset Links-en keresztüli hitelesítés kizárja a linkek elfogását. Második: felhasználói élmény — a kiválasztási párbeszédablak hiánya 20–40%-kal növeli a célművelet konverzióját. Harmadik: indexelés — a Google indexeli az App Link HTTPS-linkjeit, és megjelenítheti azokat a keresési találatokban az alkalmazáson belüli tartalomra mutató linkként.

Kompatibilitás: Az App Link Android 6.0+ (az eszközök 99%-án) működik. Android 5.x (Lollipop) esetén a szokásos Deep Link használatos kiválasztási párbeszédablakkal. Ezért ajánlott mindkét mechanizmus támogatása: App Link a modern eszközökhöz és Custom URL Scheme visszaesési lehetőségként a régebbi verziókhoz. Az autoVerify="true" attribútummal rendelkező Intent Filter nem töri meg a visszafelé kompatibilitást — Android < 6 esetén az attribútum figyelmen kívül van hagyva.

JellemzőDeep LinkApp Link
SémaEgyéni (myapp://)HTTPS (https://domain)
HitelesítésNincsassetlinks.json
Kiválasztási párbeszédMegjelenikAutomatikus átirányítás
Android verzióAPI 1+API 23+ (6.0+)
Google indexelésNincsIgen (HTTPS URL)

App Link beállítása három lépést igényel: az Intent Filter konfigurálása a manifestben, az assetlinks.json elhelyezése a szerveren és a hitelesítés ellenőrzése. Első lépés — Intent Filter hozzáadása android:autoVerify="true" attribútummal az AndroidManifest.xml-ben. Fontos megadni a HTTPS-sémát, a hosztot és azokat az útvonalakat, amelyeket az alkalmazásnak fel kell dolgoznia. Az útvonalak wildcard (*) karaktert tartalmazhatnak az alkönyvtárakhoz.

Második lépés — az assetlinks.json létrehozása. A fájl Android Studio-n keresztül generálható (Tools → App Links Assistant). Az asszisztens segít a hibakeresésben és a tesztelésben is. A fájl a szerveren a /.well-known/assetlinks.json útvonalon helyezkedik el. A szervernek Content-Type: application/json-t kell visszaadnia, és HTTPS-en keresztül, átirányítások nélkül kell elérhetőnek lennie. A Google Play Console is mutatja az App Link hitelesítési állapotát a Publishing szakaszban.

  1. Adjon hozzá Intent Filter-t android:autoVerify="true"-val az AndroidManifest.xml-ben
  2. Szerezze meg a tanúsítvány SHA256 ujjlenyomatát (keytool vagy App Links Assistant)
  3. Hozza létre az assetlinks.json-t package_name és sha256_cert_fingerprints értékekkel
  4. Helyezze el a fájlt a /.well-known/assetlinks.json útvonalon a HTTPS-szerveren
  5. Ellenőrizze a hitelesítést adb-n keresztül: adb shell dumpsync domain_verification

Tesztelés — harmadik lépés. Használja az adb-t az ellenőrzéshez: az adb shell am start -W -a android.intent.action.VIEW -d "https://example.com/product/42" parancs megnyitja az alkalmazást. Ha az alkalmazás helyett a böngésző nyílik meg — ellenőrizze az assetlinks.json-t és az autoVerify-t. Az Android Studio App Links Assistant beépített tesztelőt tartalmaz: megjeleníti a hitelesítés állapotát minden tartományhoz és útvonalhoz. Automatikus teszteléshez használja az Android Testing Library-t Intent Matcher-rel.

Működési jellemzők

Android 12 (API 31) változásokat hozott az App Link feldolgozásában. Új, tartomány-specifikus hitelesítés került hozzáadásra: a rendszer minden linket külön ellenőriz, nem a teljes Intent Filter-t. Ez növeli a biztonságot, de megköveteli az assetlinks.json fájl frissítését új útvonalak hozzáadásakor. Az Android 12 bevezette az Android App Links Assistant-t is az ADB-vel együtt — parancsokat a hitelesítés shellen keresztüli kezeléséhez.

Több tartomány — tipikus forgatókönyv éles környezetben. Az alkalmazás feldolgozhat linkeket az example.com, m.example.com és example.org oldalakról. Minden tartományhoz külön assetlinks.json szükséges a megfelelő szerveren. A manifestben több Intent Filter kerül hozzáadásra — egy-egy tartományonként. Minden tartománynak HTTPS-en keresztül kell elérhetőnek lennie, és függetlenül kell átesnie a hitelesítésen.

App Link és Jetpack Navigation — az ajánlott módja az App Link feldolgozásának modern Android-alkalmazásokban. A Jetpack Navigation támogatja a deklaratív deep link-eket a nav_graph.xml-ben vagy a NavDeepLinkRequest-en keresztül. Ez leegyszerűsíti a navigációt: a fejlesztő leírja, melyik képernyő nyílik meg egy adott URL alatt, a Navigation komponens pedig maga dolgozza fel az Intent-et és állítja vissza a navigációs vermet. A Google a Jetpack Navigation használatát ajánlja az App Link-hez.

kotlin
// App Link feldolgozása Jetpack Navigation segítségével
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        handleDeepLink(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleDeepLink(intent)
    }

    private fun handleDeepLink(intent: Intent) {
        intent.data?.let { uri ->
            navController.handleDeepLink(NavDeepLinkRequest
                .Builder
                .fromUri(uri)
                .build()
            )
        }
    }
}

Google Play Store ellenőrzi az App Link-et publikáláskor. Ha a manifest-ben meg van adva Intent Filter autoVerify-val, de az assetlinks.json nem elérhető vagy hibás, a Google Play elutasíthatja a frissítést egy figyelmeztetéssel. A fejlesztői konzolban (Policy and Programs → App Links) megjelenik az egyes tartományok hitelesítési állapota. Publikálás előtt feltétlenül ellenőrizze az állapotot — a javítás a frissítés elutasítása után késlelteti a kiadást.

Gyakran Ismételt Kérdések

Miben különbözik az App Link a Deep Link-től Androidon?

App Link — egy Deep Link hitelesítéssel a Digital Asset Links-en keresztül. Főbb különbségek: az App Link HTTPS-sémát használ az egyéni séma helyett, nem jelenít meg kiválasztási párbeszédablakot és indexeli a Google. A szokásos Deep Link az Android összes verzióján működik, de az alkalmazás manuális kiválasztását igényli.

Hova kell helyezni az assetlinks.json-t?

A fájl a HTTPS-szerver gyökerében található a /.well-known/assetlinks.json útvonalon. A szervernek Content-Type: application/json-t kell visszaadnia. A fájlt frissíteni kell az aláírási tanúsítvány megváltoztatásakor vagy új tartományok hozzáadásakor.

Miért nem nyitja meg az App Link automatikusan az alkalmazást?

Fő okok: hiányzó android:autoVerify="true" az Intent Filter-ben, az assetlinks.json nem elérhető HTTPS-en keresztül, hibás SHA256 ujjlenyomat, eltérő aláírási tanúsítvány (debug vs release). Ellenőrizze a hitelesítés állapotát az adb shell dumpsync domain_verification segítségével.

Használható az App Link saját tartomány nélkül?

Nem — az App Linkhez HTTPS-szerver szükséges elérhető assetlinks.json-nal. Ha nincs tartománya, használja a Firebase Hosting vagy GitHub Pages szolgáltatást a fájl tárolásához. Alternatíva: Custom URL Scheme (hitelesítés nélkül) vagy Firebase Dynamic Links.

Működik az App Link Android 5-ön?

Nem — az App Link Android 6.0 (API 23) és újabb verziókon támogatott. Android 5-ön az android:autoVerify="true" attribútummal rendelkező Intent Filter figyelmen kívül hagyja az attribútumot, és szokásos Deep Link-ként működik kiválasztási párbeszédablakkal. A visszafelé kompatibilitás érdekében ajánlott mindkét mechanizmus támogatása.

Összefoglaló

  • App Link — a Deep Link evolúciója Androidhoz: HTTPS-link automatikus átmenettel az alkalmazásba
  • Digital Asset Links — kriptográfiai hitelesítés az assetlinks.json-on keresztül a szerveren
  • SHA256 ujjlenyomat az aláírási tanúsítványról — a kulcselem, amely összeköti a fejlesztőt a tartománnyal
  • android:autoVerify="true" — az Intent Filter kötelező attribútuma az App Link aktiválásához
  • Biztonság — az App Link kizárja a linkek elfogását harmadik fél alkalmazásai által
  • Google Play Store ellenőrzi az App Link hitelesítését publikáláskor és hibák esetén elutasítja
  • Jetpack Navigation — ajánlott mód az App Link feldolgozására deklaratív deep link-ekkel

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.

Projekt megbeszélése

Olvassa el is