Idi na dokumentaciju

Duboki linkovi

Kixo Deep Links svaku osobu vode na najbolje dostupno odredište. Ako je aplikacija instalirana, isti brendirani HTTPS link otvara odgovarajući ekran u aplikaciji. U suprotnom može otvoriti vašu web stranicu ili rezervno odredište u App Storeu ili Google Playu. Verified otvaranje aplikacije obrađuje operativni sistem; kada link završi u pregledniku, Kixo primjenjuje fallback sačuvan za taj link.

Počnite u Kixo

Otvorite Postavke projekta → Deep linkovi, kreirajte adresu i kopirajte podešavanje prikazano za tu adresu. Host na kontrolnoj ploči je jedini izvor istine za sve isječke ispod.

Kako se link otvara

Uređaj osobeRezultat
Aplikacija je instalirana i App Link je ispravno podešenAplikacija se otvara direktno na odredištu linka.
Aplikacija nije instaliranaKixo koristi fallback za web stranicu ili prodavnicu koji je odabran za taj link.
Desktop preglednikOtvara se fallback za web stranicu.
Podešavanje aplikacije nije dovršenoOtvara se sigurni fallback umjesto neispravnog poziva za otvaranje aplikacije.

Koristite tačan brendirani host

Host Kixo linka pripada jednom projektu i izgleda kao yourbrand.kixo.cc. Razvojni projekti mogu koristiti drugačiji završetak kojim upravlja Kixo. Uvijek kopirajte cijeli host iz kontrolne ploče.

Wildcardi ne rade

Podesite yourbrand.kixo.cc, a ne *.kixo.cc i ne kixo.cc. Android i iOS potvrđuju tačan host koji osoba otvara.

Web stranica i QR handoff

Web SDK automatski prepoznaje dolazak preko Kixo linka. getLinkData() koristite samo kada vašoj web stranici trebaju razriješeni kontekst kampanje ili prilagođeni parametri u vlastitom routeru.

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

Ponudite “Open in app” na mobilnom webu

Proslijedite puni javni URL linka koji vrati Kixo. Banner se prikazuje samo na mobilnom webu i prepušta Kixo linku da odabere instaliranu aplikaciju, prodavnicu ili odredište na webu.

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

Nastavite desktop sesiju pomoću QR koda

Za QR prikazan na vašoj web stranici tražite od Kixo da napravi handoff za postojeći link, umjesto da sami sastavljate URL. Kixo koristi odredišta aplikacije i web stranice sačuvana za taj link.

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

qrCode.render(handoff.url);

Koristite vrijednosti koje vrati Kixo

Proslijedite ID linka iz Kixo i vratite dobijeni URL bez izmjena. Opcionalni params dodaju kontekst za allowlistanu rutu aplikacije ili web stranice; ne zamjenjuju odredište linka. Nemojte prosljeđivati user ID ni device ID.

Android App Links

Prije uređivanja koda sačuvajte Android naziv paketa i svaki SHA-256 fingerprint za potpisivanje aplikacije u Aplikacije i podešavanje. Ako release potpisuje Google Play, dodajte i Play App Signing fingerprint, kao i svaki fingerprint koji se koristi za direktne ili interne buildove.

1. Dodajte host u manifest

Ovaj intent filter postavite na activity koji upravlja navigacijom aplikacije. Zamijenite samo placeholder za host.

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. Proslijedite warm otvaranja

Kixo SDK čita App Link pri hladnom pokretanju. Kada Android ponovo iskoristi postojeći activity, proslijedite mu novi intent kako bi toplo otvaranje pratilo isti tok atribucije i usmjeravanja.

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

Nakon izmjene manifesta ponovo instalirajte aplikaciju, zatim zatražite od Android da potvrdi host i provjerite rezultat.

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"

Savjet

Prikaz izbora preglednika obično znači da se ne poklapaju tačan host, naziv paketa ili potpisni fingerprint. Prije izmjena navigacijskog koda aplikacije provjerite te tri vrijednosti.

iOS Universal Links

Sačuvajte bundle ID aplikacije i Apple team ID u Aplikacije i podešavanje. U Xcodeu uključite mogućnost Associated Domains na istom targetu aplikacije i u istoj signing konfiguraciji koja se koristi za instalirani build.

1. Dodajte povezanu domenu

applinks:YOUR_EXACT_KIXO_HOST

2. Proslijedite cold i warm linkove

Odaberite lifecycle koji aplikacija koristi. Oba primjera prosljeđuju razriješeno odredište vašem routeru; Kixo ne preuzima navigaciju aplikacije.

import Kixo

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

3. Provjerite iOS

  1. Obrišite aplikaciju s uređaja, pa instalirajte potpisani build.
  2. Otvorite stvarni Kixo link iz Notes, Messages ili Safarija. Nemojte ga samo zalijepiti u adresnu traku Safarija i to uzeti kao jedini test.
  3. Potvrdite da otvaranje iz ugašenog stanja pokreće aplikaciju na očekivanom ekranu.
  4. Ostavite aplikaciju otvorenu, ponovo dodirnite link i potvrdite toplo otvaranje.
  5. Potvrdite da se otvaranje linka vidi u Kixo.

Zadržite usmjeravanje unutar aplikacije

Kixo link može sadržavati odredište kao što je /products/42. Poznate putanje povežite sa svojim ekranima i zadržite postojeće provjere pristupa u aplikaciji. Razriješenu vrijednost nemojte pretvarati u opći URL otvarač.

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

Dajte ovo asistentu za programiranje

Zamijenite svih pet placeholdera vrijednostima iz Postavke projekta → Aplikacije i postavljanje i Duboki linkovi, pa cijeli brief zalijepite u Codex, Claude Code, Cursor, Windsurf ili drugi asistent za programiranje.

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

Šta asistent ne smije pogađati

Brendirani host, naziv paketa, potpisni fingerprinti, bundle ID i Apple team ID dolaze iz vaše aplikacije i Kixo projekta. Asistent može povezati kod, ali treba stati i prijaviti vrijednost koja nedostaje umjesto da je izmisli.

Kontrolna lista za release

  • Tačan Kixo host prisutan je u podešavanju za Android i iOS.
  • Android prijavljuje da je host potvrđen za release paket.
  • Release fingerprinti za potpisivanje sačuvani su u Kixo.
  • iOS entitlement je prisutan u potpisanom buildu aplikacije.
  • Hladno i toplo otvaranje vode na očekivani ekran.
  • Fallback za web stranicu ili prodavnicu radi i kada aplikacija nije instalirana.
  • Otvaranje linka vidi se u Kixo analitici.

Povezani vodiči