Liigu dokumentatsiooni juurde

Süvalingid

Kixo süvalingid suunavad iga kasutaja parimasse saadaolevasse sihtkohta. Kui rakendus on paigaldatud, avab sama bränditud HTTPS-link rakenduses õige ekraani. Muidu saab avada sinu veebisaidi, App Store'i või Google Play varusihtkoha. Kinnitatud rakenduse avamise eest vastutab operatsioonisüsteem; kui link jõuab brauserisse, rakendab Kixo selle lingi jaoks salvestatud varusihtkohta.

Alusta Kixo-st

Ava Projekti seaded → Süvalingid, loo aadress ja kopeeri selle aadressi juures näidatud seadistus. Armatuurlaual olev host on kõigi allolevate näidete alus.

Kuidas link avaneb

Kasutaja seadeTulemus
Rakendus on paigaldatud ja App Links on õigesti seadistatudRakendus avaneb otse lingi sihtkohas.
Rakendus pole paigaldatudKixo kasutab sellele lingile valitud veebisaidi või rakenduse poe varusihtkohta.
TöölauabrauserAvaneb veebisaidi varusihtkoht.
Rakenduse seadistus on puudulikKatkise rakenduse viiba asemel avaneb turvaline varusihtkoht.

Kasuta täpset bränditud hosti

Kixo lingi host kuulub ühele projektile ja näeb välja näiteks yourbrand.kixo.cc. Arendusprojektidel võib lõpp olla teine, kuid see on samuti Kixo hallatav. Kopeeri host alati tervikuna armatuurlaualt.

Metsikkaardid ei tööta

Seadista yourbrand.kixo.cc, mitte *.kixo.cc ega kixo.cc. Android ja iOS kinnitavad täpselt selle hosti, mille kasutaja avab.

Veeb ja QR-handoff

Web SDK tunneb Kixo lingi maandumise automaatselt ära. Kasuta getLinkData() ainult siis, kui sinu veebisait vajab oma ruuteris lahendatud kampaaniakonteksti või kohandatud parameetreid.

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);
}

Paku mobiiliveebis valikut “Open in app”

Edasta Kixo tagastatud täielik avaliku lingi URL. Bännerit kuvatakse ainult mobiiliveebis ning selle kaudu saab Kixo link valida, kas avada paigaldatud rakendus, rakenduse pood või veebisait.

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

Jätka töölauaseanssi QR-koodiga

Kui QR-koodi kuvatakse sinu veebisaidil, lase Kixo-l luua olemasoleva lingi jaoks handoff, mitte ära koosta URL-i ise. Kixo kasutab selle lingi juurde salvestatud rakenduse ja veebisaidi sihtkohti.

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

qrCode.render(handoff.url);

Kasuta Kixo tagastatud väärtusi

Edasta Kixo lingi ID ja kuva tagastatud URL muutmata kujul. Valikulised params lisavad sinu lubatud rakenduse- või veebiteekonnale konteksti, kuid ei asenda lingi sihtkohta. Ära edasta kasutaja ID-d ega seadme ID-d.

Android App Links

Enne koodi muutmist salvesta asukohta Rakendused ja seadistus Androidi paketinimi ja kõik SHA-256 rakenduse allkirjastamise sõrmejäljed. Kui väljalase allkirjastatakse Google Play kaudu, lisa ka Play App Signing sõrmejälg ning kõik sõrmejäljed, mida kasutatakse otsestes või sisemistes buildides.

1. Lisa host manifesti

Lisa see intent filter activity külge, mis haldab rakenduse navigeerimist. Asenda ainult hosti placeholder.

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. Edasta soojad avamised

Kixo SDK loeb külmkäivituse App Link'i. Kui Android kasutab olemasolevat activity't uuesti, edasta sellele uus intent, et ka soeavamine järgiks sama omistamise ja suunamise teekonda.

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. Kontrolli Androidi

Pärast manifesti muutmist paigalda rakendus uuesti, lase Androidil host kinnitada ja kontrolli tulemust.

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"

Nipp

Brauserivalik tähendab enamasti, et täpne host, paketinimi või allkirja sõrmejälg ei ühti. Enne rakenduse navigeerimiskoodi muutmist kontrolli need kolm väärtust üle.

iOS Universal Links

Salvesta rakenduse bundle ID ja Apple team ID asukohta Rakendused ja seadistus. Xcode'is luba Associated Domains capability samal app target'il ja sama allkirjastuskonfiguratsiooniga, mida kasutab paigaldatud build.

1. Lisa seotud domeen

applinks:YOUR_EXACT_KIXO_HOST

2. Edasta külmad ja soojad lingiavamised

Vali elutsükkel, mida sinu rakendus kasutab. Mõlemas näites edastatakse lahendatud sihtkoht sinu enda ruuterile; Kixo ei asenda rakenduse navigeerimist.

import Kixo

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

3. Kontrolli iOS-i

  1. Kustuta rakendus seadmest ja paigalda seejärel allkirjastatud build.
  2. Ava päris Kixo link rakendusest Notes, Messages või Safari kaudu. Ära piirdu testimisel ainult lingi kleepimisega Safari aadressiribale.
  3. Veendu, et külm puudutus avab rakenduse õigel ekraanil.
  4. Jäta rakendus tööle, puuduta linki uuesti ja veendu, et soeavamine toimib.
  5. Veendu, et lingi avamine jõuab Kixo-sse.

Hoia suunamine rakenduse sees

Kixo link võib sisaldada sihtkohta, näiteks /products/42. Suuna tuntud rajad oma rakenduse vastavatele vaadetele ja jäta alles senised ligipääsukontrollid. Ära kasuta lahendatud väärtust üldotstarbelise URL avajana.

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()
    }
}

Anna see koodiassistendile

Asenda viis placeholder'it väärtustega lehtedelt Projekti seaded → Rakendused ja seadistus ja Süvalingid, seejärel kleebi valmis lähteülesanne Codexisse, Claude Code'i, Cursorisse, Windsurfi või mõnda teise koodiassistenti.

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

Mida assistent ei tohi oletada

Bränditud host, paketinimi, allkirja sõrmejäljed, bundle ID ja Apple team ID pärinevad sinu rakendusest ja Kixo projektist. Assistent võib koodi ühendada, kuid puuduva väärtuse korral peab ta peatuma ja sellest teada andma, mitte midagi ise välja mõtlema.

Väljalaske kontrollnimekiri

  • Täpne Kixo host on olemas nii Androidi kui iOS-i seadistuses.
  • Android näitab, et host on väljalaskepaketi jaoks kinnitatud.
  • Väljalaske allkirja sõrmejäljed on Kixo-sse salvestatud.
  • iOS entitlement on allkirjastatud rakenduse buildis olemas.
  • Külm- ja soeavamine jõuavad oodatud ekraanile.
  • Veebisaidi või rakenduse poe varusihtkoht töötab ka siis, kui rakendus pole paigaldatud.
  • Lingi avamine ilmub Kixo analüütikasse.

Seotud juhendid