Ugrás a dokumentációhoz

Mélyhivatkozások

A Kixo Deep Links mindenkit a lehető legjobb elérhető célhelyre irányít. Ha az alkalmazás telepítve van, ugyanaz a márkázott HTTPS-link a megfelelő képernyőt nyitja meg benne. Ha nincs telepítve, a link megnyithatja a webhelyedet, az App Store-t vagy a Google Playben beállított tartalék célhelyet. A hitelesített alkalmazásmegnyitást az operációs rendszer kezeli; ha a link a böngészőbe jut, a Kixo az adott linkhez mentett tartalék célhelyet alkalmazza.

Kezdés a Kixo-ban

Nyisd meg ezt: Projektbeállítások → Mélyhivatkozások, hozz létre egy címet, majd másold ki az ahhoz tartozó beállítást. Az alábbi kódrészleteknél mindig a dashboardban látható hoszt az irányadó.

Hogyan nyílik meg a link

A felhasználó eszközeEredmény
Az alkalmazás telepítve van, és az App Link beállítása érvényesAz alkalmazás közvetlenül a link célhelyén nyílik meg.
Az alkalmazás nincs telepítveA Kixo a linkhez kiválasztott webes vagy áruházi tartalék célhelyet használja.
Asztali böngészőA webes tartalék célhely nyílik meg.
Az alkalmazás beállítása hiányosHibás alkalmazásmegnyitási prompt helyett a biztonságos tartalék célhely nyílik meg.

A pontos, márkázott hosztot használd

A Kixo-link hosztja egyetlen projekthez tartozik, és így néz ki: yourbrand.kixo.cc. Fejlesztői projektek más, Kixo által kezelt végződést is használhatnak. Mindig a teljes hosztot másold ki a dashboardból.

A helyettesítő karakterek nem működnek

Ezt állítsd be: yourbrand.kixo.cc, ne ezt: *.kixo.cc, és ne ezt: kixo.cc. Az Android és iOS pontosan azt a hosztot ellenőrzi, amelyet a felhasználó megnyit.

Webhelyes és QR-átadás

A Web SDK automatikusan felismeri, ha valaki Kixo-linkről érkezik. A(z) getLinkData() elemet csak akkor használd, ha a webhelyed saját routerében szükség van a feloldott kampánykontextusra vagy egyedi paraméterekre.

js
const link = Kixo.getLinkData();

if (link?.params.product_id) {
  // URL values are user-controlled. Allowlist them before routing.
  router.openProduct(link.params.product_id);
}

„Open in app” megjelenítése mobilweben

Add át a Kixo által visszaadott teljes nyilvános link URL-jét. A sáv csak mobilweben jelenik meg, és a Kixo-link alapján a telepített alkalmazást, az áruházat vagy a webhely céloldalát választja.

js
Kixo.showSmartBanner({
  linkId: 'YOUR_KIXO_LINK_ID',
  linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
  title: 'Continue in the app',
});

Asztali munkamenet folytatása QR-kóddal

Ha a QR a saját webhelyeden jelenik meg, kérd meg a Kixo-t, hogy egy meglévő linkhez hozzon létre átadást, ne te állítsd össze az URL-t. A Kixo az adott linkhez mentett alkalmazás- és webes célhelyeket használja.

js
const handoff = await Kixo.createQrHandoff({
  linkId: 'YOUR_KIXO_LINK_ID',
  params: {
    product_id: '42',
  },
});

qrCode.render(handoff.url);

A Kixo által visszaadott értékeket használd

Add át a Kixo-tól kapott linkazonosítót, és a visszaadott URL-t változtatás nélkül jelenítsd meg. Az opcionális params mezők kontextust adhatnak az engedélyezett alkalmazás- vagy webes útvonalhoz, de nem helyettesítik a link célhelyét. Ne adj át felhasználóazonosítót vagy eszközazonosítót.

Android App Links

Mielőtt a kódhoz nyúlnál, mentsd el az Android-csomagnevet és az összes SHA-256 alkalmazásaláírási ujjlenyomatot itt: Alkalmazások és beállítások. Ha a kiadást a Google Play írja alá, add meg a Play App Signing ujjlenyomatát is, valamint minden olyan ujjlenyomatot, amelyet közvetlen vagy belső build használ.

1. Add hozzá a hosztot a manifesthez

Ezt az intent filtert arra az activityre tedd, amely az alkalmazás navigációját kezeli. Csak a hoszt helyőrzőjét cseréld le.

xml
<activity
    android:name=".MainActivity"
    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="YOUR_EXACT_KIXO_HOST"
            android:pathPrefix="/link/" />
    </intent-filter>
</activity>

2. Továbbítsd a meleg megnyitásokat

A Kixo SDK beolvassa a hideg indításkor érkező App Linket. Ha az Android egy meglévő activityt használ újra, add tovább az új intentet, hogy a meleg megnyitás ugyanazon az attribúciós és route-kezelési úton menjen végig.

kotlin
import android.content.Intent
import io.kixo.sdk.Kixo

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    setIntent(intent)
    intent.dataString?.let { url ->
        Kixo.handleDeepLink(url, source = "applink")
    }
}

3. Ellenőrizd az Android-beállítást

A manifest módosítása után telepítsd újra az alkalmazást, majd kérd meg az Android rendszert a hoszt hitelesítésére, és ellenőrizd az eredményt.

bash
adb shell pm verify-app-links --re-verify YOUR_ANDROID_PACKAGE
adb shell pm get-app-links YOUR_ANDROID_PACKAGE

# The exact host should be "verified".
adb shell am start -W \
  -a android.intent.action.VIEW \
  -d "https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG"

Tipp

Ha böngészőválasztó jelenik meg, az általában azt jelzi, hogy a hoszt, a csomagnév vagy az aláírási ujjlenyomat nem egyezik pontosan. Mielőtt az alkalmazás navigációs kódját módosítanád, ellenőrizd ezt a három értéket.

iOS Universal Links

Mentsd el az alkalmazás bundle ID-ját és az Apple team ID-ját ide: Alkalmazások és beállítások. Az Xcode-ban kapcsold be a(z) Társított domainek képességet ugyanazon az app targeten és aláírási konfiguráción, amelyet a telepített build használ.

1. Add hozzá a kapcsolódó domaint

applinks:YOUR_EXACT_KIXO_HOST

2. Továbbítsd a hideg és meleg megnyitásokat

Válaszd ki, melyik életciklust használja az alkalmazás. Mindkét példa a feloldott célhelyet a saját routerednek adja át; a Kixo nem veszi át az alkalmazás navigációját.

import Kixo

WindowGroup {
    ContentView()
        .onKixoDeepLink { link in
            guard link.phase == .resolved else { return }
            router.open(link.targetPath ?? link.path)
        }
}

3. Ellenőrizd az iOS-beállítást

  1. Töröld az alkalmazást az eszközről, majd telepítsd az aláírt buildet.
  2. Nyiss meg egy valódi Kixo-linket a Jegyzetekből, az Üzenetekből vagy a Safariból. Ne csak úgy tesztelj, hogy bemásolod a Safari címsorába.
  3. Ellenőrizd, hogy hideg indításnál a koppintás a várt képernyőn nyitja meg az alkalmazást.
  4. Hagyd futni az alkalmazást, koppints újra a linkre, és ellenőrizd a meleg megnyitást.
  5. Ellenőrizd, hogy a link megnyitása megjelenik a Kixo felületén.

A route-kezelés maradjon az alkalmazáson belül

Egy Kixo-link tartalmazhat célhelyet is, például /products/42. Az ismert útvonalakat irányítsd a saját képernyőidre, és tartsd meg az alkalmazás meglévő hozzáférés-ellenőrzéseit. A feloldott értékből ne csinálj általános célú URL-megnyitót.

Kixo.setDeferredDeepLinkListener { link ->
    if (link?.phase != KixoDeepLinkPhase.RESOLVED) return@setDeferredDeepLinkListener
    when {
        link.targetUrl?.startsWith("/products/") == true ->
            router.openProduct(link.targetUrl.substringAfterLast("/"))
        link.targetUrl == "/account" ->
            router.openAccount()
    }
}

Add oda egy kódasszisztensnek

Cseréld le az öt helyőrzőt a(z) Projektbeállítások → Alkalmazások és beállítás és Mélylinkek értékeire, majd illeszd be a teljes összefoglalót a Codex, Claude Code, Cursor, Windsurf vagy más kódasszisztens felületére.

text
Add Kixo Deep Links to this app.

Project values:
- Kixo branded host: YOUR_EXACT_KIXO_HOST
- Android package name: YOUR_ANDROID_PACKAGE
- Android SHA-256 signing fingerprints: YOUR_ANDROID_FINGERPRINTS
- iOS bundle ID: YOUR_IOS_BUNDLE_ID
- Apple team ID: YOUR_APPLE_TEAM_ID

Requirements:
1. Use the exact branded host above. Do not replace it with kixo.cc, dixo.dev, a wildcard, or the website domain.
2. Keep the app's existing navigation. Kixo resolves and measures the link; the app decides which screen to show.
3. Android:
   - add an android:autoVerify App Links intent filter for https://YOUR_EXACT_KIXO_HOST/link/
   - keep the package name and every release signing fingerprint in Kixo Apps & setup
   - forward warm Activity.onNewIntent URLs to Kixo.handleDeepLink(url, source = "applink")
4. iOS:
   - add applinks:YOUR_EXACT_KIXO_HOST to the app target's Associated Domains entitlement
   - keep the bundle ID and Apple team ID in Kixo Apps & setup
   - for SwiftUI, attach .onKixoDeepLink to the root view
   - for UIKit scenes, forward cold connectionOptions and warm NSUserActivity callbacks to Kixo
5. Route only known in-app paths. Do not blindly open an arbitrary URL returned by a link.
6. Test a cold open and a warm open on a physical device or emulator. Confirm the app opens directly and the link open appears in Kixo.

Return:
- the files changed
- the exact host configured in each platform
- cold-open and warm-open test results
- anything still requiring a dashboard or signing-account change

Amit az asszisztens nem találhat ki

A márkázott hoszt, a csomagnév, az aláírási ujjlenyomatok, a bundle ID és az Apple team ID az alkalmazásodból és a Kixo-projektből származik. Egy asszisztens bekötheti a kódot, de ha hiányzik egy érték, álljon meg és jelezze, ne találjon ki helyette mást.

Kiadási ellenőrzőlista

  • A pontos Kixo hoszt szerepel az Android- és iOS-beállításban.
  • Az Android a hosztot hitelesítettként jelzi a kiadási csomaghoz.
  • A kiadási aláírási ujjlenyomatok el vannak mentve a Kixo-ban.
  • Az iOS entitlement benne van az aláírt alkalmazásbuildben.
  • Hideg és meleg megnyitáskor is a várt képernyő jelenik meg.
  • A webes vagy áruházi tartalék célhely az alkalmazás telepítése nélkül is működik.
  • A link megnyitása megjelenik a Kixo analitikájában.

Kapcsolódó útmutatók