Prijeđi na dokumentaciju

Duboke poveznice

Kixo Deep Links svakog korisnika vode na najbolje dostupno odredište. Ako je aplikacija instalirana, ista brendirana HTTPS poveznica otvara odgovarajući ekran u aplikaciji. U suprotnom može otvoriti vašu web-stranicu, App Store ili Google Play fallback. Potvrđeno otvaranje aplikacije obrađuje operacijski sustav; kada poveznica završi u pregledniku, Kixo primjenjuje fallback spremljen za tu poveznicu.

Počnite u Kixo

Otvorite Postavke projekta → Duboke poveznice, izradite adresu i kopirajte postavke prikazane za tu adresu. Host na dashboardu mjerodavan je izvor za sve isječke u nastavku.

Kako se poveznica otvara

Korisnikov uređajRezultat
Aplikacija je instalirana i App Link je ispravno postavljenAplikacija se otvara izravno na odredišnom ekranu poveznice.
Aplikacija nije instaliranaKixo koristi fallback na web-stranicu ili trgovinu odabran za tu poveznicu.
Preglednik na računaluOtvara se fallback na web-stranicu.
Postavljanje aplikacije nije dovršenoOtvara se sigurni fallback umjesto neispravnog upita za otvaranje aplikacije.

Koristite točan brendirani host

Host Kixo poveznice pripada jednom projektu i izgleda ovako: yourbrand.kixo.cc. Razvojni projekti mogu koristiti drugi završetak kojim upravlja Kixo. Uvijek kopirajte cijeli host s dashboarda.

Zamjenski znakovi ne rade

Konfigurirajte yourbrand.kixo.cc, ne *.kixo.cc i ne kixo.cc. Android i iOS provjeravaju točan host koji korisnik otvara.

Web-stranica i QR handoff

Web SDK automatski prepoznaje dolazak preko Kixo poveznice. getLinkData() koristite samo ako vašoj web-stranici u vlastitom usmjerivaču trebaju razriješeni kontekst kampanje ili prilagođeni parametri.

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 poveznice koji vraća Kixo. Banner se prikazuje samo na mobilnom webu i prepušta Kixo poveznici odabir između instalirane aplikacije, trgovine ili web odredišta.

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

Nastavite sesiju na računalu pomoću QR koda

Za QR prikazan na vašoj web-stranici zatražite od Kixo da napravi handoff za postojeću poveznicu umjesto da sami sastavljate URL. Kixo koristi odredišta za aplikaciju i web-stranicu spremljena uz tu poveznicu.

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

qrCode.render(handoff.url);

Koristite vrijednosti koje vraća Kixo

Proslijedite ID poveznice iz Kixo i prikažite vraćeni URL bez izmjena. Neobavezni params dodaju kontekst za dopuštenu rutu aplikacije ili web-stranice; ne zamjenjuju odredište poveznice. Nemojte prosljeđivati user ID ni device ID.

Android App Links

Prije izmjena koda spremite Android naziv paketa i svaki SHA-256 potpisni otisak aplikacije u Aplikacije i postavljanje. Ako release potpisuje Google Play, dodajte i Play App Signing otisak te sve otiske koji se koriste za izravne ili interne buildove.

1. Dodajte host u manifest

Dodajte ovaj intent filter na activity koji upravlja navigacijom u aplikaciji. Zamijenite samo rezervirano mjesto 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 topla otvaranja

Kixo SDK čita App Link pri hladnom pokretanju. Kada Android ponovno iskoristi postojeći activity, proslijedite novi intent kako bi i toplo otvaranje pratilo isti put 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. Potvrdite Android

Nakon izmjene manifesta ponovno 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

Ako se prikaže izbor preglednika, to najčešće znači da se ne podudaraju točan host, naziv paketa ili potpisni otisak. Prije izmjena koda za navigaciju u aplikaciji provjerite sve tri vrijednosti.

iOS Universal Links

Spremite bundle ID aplikacije i Apple team ID u Aplikacije i postavljanje. 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 hladna i topla otvaranja

Odaberite životni ciklus koji aplikacija koristi. Oba primjera prosljeđuju razriješeno odredište vašem usmjerivaču; Kixo ne preuzima navigaciju unutar aplikacije.

import Kixo

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

3. Potvrdite iOS

  1. Uklonite aplikaciju s uređaja, zatim instalirajte potpisani build.
  2. Otvorite stvarnu Kixo poveznicu iz Notes, Messages ili Safarija. Nemojte je samo lijepiti u adresnu traku Safarija i to smatrati jedinim testom.
  3. Potvrdite da hladno otvaranje pokreće aplikaciju na očekivanom ekranu.
  4. Ostavite aplikaciju otvorenom, ponovno dodirnite poveznicu i potvrdite toplo otvaranje.
  5. Potvrdite da se otvaranje poveznice vidi u Kixo.

Zadržite usmjeravanje u aplikaciji

Kixo poveznica može nositi odredište kao što je /products/42. Poznate putanje mapirajte na vlastite ekrane i zadržite postojeće provjere pristupa u aplikaciji. Razriješenu vrijednost nemojte pretvoriti u opći otvarač URL-ova.

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 pet rezerviranih mjesta vrijednostima iz Postavke projekta → Aplikacije i postavljanje i Dubinske poveznice, pa cijeli brief zalijepite u Codex, Claude Code, Cursor, Windsurf ili neki 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

Što asistent ne smije pogađati

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

Kontrolni popis za release

  • Točan Kixo host prisutan je u postavkama za Android i iOS.
  • Android prijavljuje da je host potvrđen za release paket.
  • Release potpisni otisci spremljeni su u Kixo.
  • iOS entitlement prisutan je u potpisanom buildu aplikacije.
  • Hladno i toplo otvaranje vode na očekivani ekran.
  • Fallback na web-stranicu ili trgovinu radi i bez instalirane aplikacije.
  • Otvaranje poveznice vidi se u Kixo analitici.

Povezani vodiči