Siirry dokumentaatioon

Syvälinkit

Kixo Deep Links ohjaa jokaisen käyttäjän parhaaseen saatavilla olevaan kohteeseen. Jos sovellus on asennettu, sama brändätty HTTPS-linkki avaa oikean näkymän sovelluksessa. Muussa tapauksessa se voi avata verkkosivustosi, App Storen tai Google Playn varakohteen. Käyttöjärjestelmä hoitaa vahvistetun sovellusavauksen; jos linkki päätyy selaimeen, Kixo käyttää linkille tallennettua varakohdetta.

Aloita Kixo:ssa

Avaa Projektin asetukset → Syvälinkit, luo osoite ja kopioi kyseiselle osoitteelle näytetty määritys. Dashboardissa näkyvä host on kaikkien alla olevien esimerkkien lähdearvo.

Miten linkki avautuu

Käyttäjän laiteTulos
Sovellus on asennettu ja app link -määritys on kunnossaSovellus avautuu suoraan linkin kohteeseen.
Sovellusta ei ole asennettuKixo käyttää linkille valittua verkkosivusto- tai kauppavarakohdetta.
TyöpöytäselainVerkkosivuston varakohde avautuu.
Sovelluksen määritys on puutteellinenTurvallinen varakohde avautuu rikkinäisen sovelluskehotteen sijaan.

Käytä täsmälleen oikeaa brändättyä hostia

Kixo-linkin host kuuluu aina yhteen projektiin ja näyttää esimerkiksi tältä: yourbrand.kixo.cc. Kehitysprojekteissa pääte voi olla toinen, mutta silti Kixo:n hallinnoima. Kopioi host aina kokonaisuudessaan dashboardista.

Yleismerkit eivät toimi

Määritä yourbrand.kixo.cc, älä *.kixo.cc äläkä kixo.cc. Android ja iOS vahvistavat täsmälleen sen hostin, jonka käyttäjä avaa.

Verkkosivusto ja QR-handoff

Web SDK tunnistaa Kixo-linkin laskeutumisen automaattisesti. Käytä getLinkData() vain silloin, kun verkkosivustosi tarvitsee ratkaistun kampanjakontekstin tai mukautetut parametrit omaan reititykseensä.

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

Tarjoa mobiiliverkossa “Open in app”

Välitä Kixo:n palauttama julkisen linkin täydellinen URL. Banneri näytetään vain mobiiliverkossa, ja sen avulla Kixo-linkki valitsee asennetun sovelluksen, kaupan tai verkkosivuston kohteen.

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

Jatka työpöytäistuntoa QR-koodilla

Jos QR-koodi näytetään verkkosivustollasi, pyydä Kixo:a luomaan handoff olemassa olevalle linkille sen sijaan, että rakentaisit URL:n itse. Kixo käyttää linkille tallennettuja sovellus- ja verkkosivukohteita.

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

qrCode.render(handoff.url);

Käytä Kixo:n palauttamia arvoja

Välitä Kixo:n linkki-ID ja renderöi palautettu URL muuttamattomana. Valinnaiset params tuovat lisäkontekstia sallittuun sovellus- tai verkkosivureittiin, mutta eivät korvaa linkin kohdetta. Älä välitä käyttäjä-ID:tä tai laite-ID:tä.

Android App Links

Tallenna ennen koodin muokkaamista Android-paketin nimi ja kaikki sovelluksen SHA-256-allekirjoitussormenjäljet kohtaan Sovellukset ja määritykset. Jos Google Play allekirjoittaa julkaisun, lisää mukaan myös Play App Signing -sormenjälki sekä kaikki suorissa tai sisäisissä koosteissa käytetyt sormenjäljet.

1. Lisää host manifestiin

Lisää tämä intent filter siihen activityyn, joka vastaa sovelluksen navigoinnista. Korvaa vain hostin paikkamerkki.

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. Välitä lämpimät avaukset

Kixo SDK lukee App Linkin kylmäkäynnistyksessä. Kun Android käyttää olemassa olevaa activityä uudelleen, välitä uusi intent eteenpäin, jotta lämmin avaus kulkee samaa attribuutio- ja reitityspolkua.

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. Vahvista Android

Asenna sovellus uudelleen manifestin muuttamisen jälkeen, pyydä Androidia vahvistamaan host ja tarkista tulos.

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"

Vinkki

Selainvalitsin kertoo yleensä siitä, että host, paketin nimi tai allekirjoituksen sormenjälki ei täsmää. Tarkista nämä kolme arvoa ennen kuin muutat sovelluksen navigointikoodia.

iOS Universal Links

Tallenna sovelluksen bundle ID ja Apple team ID kohtaan Sovellukset ja määritykset. Ota Xcodessa Liitetyt verkkotunnukset käyttöön samassa app targetissa ja allekirjoitusmäärityksessä, jota asennettu kooste käyttää.

1. Lisää liitetty verkkotunnus

applinks:YOUR_EXACT_KIXO_HOST

2. Välitä kylmät ja lämpimät linkkiohjaukset

Valitse sovelluksen käyttämä elinkaari. Molemmissa esimerkeissä ratkaistu kohde välitetään omaan reitittimeesi; Kixo ei korvaa sovelluksen navigointia.

import Kixo

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

3. Vahvista iOS

  1. Poista sovellus laitteesta ja asenna sitten allekirjoitettu kooste.
  2. Avaa oikea Kixo-linkki Muistiinpanoista, Viesteistä tai Safarista. Älä tee ainoaa testiä liittämällä linkkiä Safarin osoiteriville.
  3. Varmista, että kylmä avaus käynnistää sovelluksen oikeaan näkymään.
  4. Jätä sovellus käyntiin, napauta linkkiä uudelleen ja varmista lämmin avaus.
  5. Varmista, että linkin avaus näkyy Kixo:ssa.

Pidä reititys sovelluksen sisällä

Kixo-linkki voi sisältää kohteen, kuten /products/42. Ohjaa tunnetut polut omiin näkymiisi ja säilytä sovelluksen nykyiset käyttöoikeustarkistukset. Älä käytä ratkaistua arvoa yleiskäyttöisenä URL-avaajana.

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 tämä koodiavustajalle

Korvaa viisi paikkamerkkiä arvoilla kohdista Projektin asetukset → Sovellukset ja käyttöönotto ja Syvälinkit, ja liitä koko ohje Codexiin, Claude Codeen, Cursoriin, Windsurfiin tai muuhun koodiavustajaan.

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

Mitä avustaja ei saa arvata

Brändätty host, paketin nimi, allekirjoitussormenjäljet, bundle ID ja Apple team ID tulevat sovelluksestasi ja Kixo-projektista. Avustaja voi kytkeä koodin, mutta sen pitää pysähtyä ja ilmoittaa puuttuvasta arvosta sen sijaan, että keksisi sellaisen.

Julkaisun tarkistuslista

  • Täsmällinen Kixo-host on mukana sekä Android- että iOS-määrityksessä.
  • Android ilmoittaa, että host on vahvistettu julkaisupaketille.
  • Julkaisun allekirjoitussormenjäljet on tallennettu Kixo:on.
  • iOS entitlement sisältyy allekirjoitettuun sovelluskoosteeseen.
  • Kylmä ja lämmin avaus päätyvät oikeaan näkymään.
  • Verkkosivusto- tai kauppavarakohde toimii myös ilman asennettua sovellusta.
  • Linkin avaus näkyy Kixo-analytiikassa.

Aiheeseen liittyvät oppaat