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 osobe | Rezultat |
|---|---|
| Aplikacija je instalirana i App Link je ispravno podešen | Aplikacija se otvara direktno na odredištu linka. |
| Aplikacija nije instalirana | Kixo koristi fallback za web stranicu ili prodavnicu koji je odabran za taj link. |
| Desktop preglednik | Otvara se fallback za web stranicu. |
| Podešavanje aplikacije nije dovršeno | Otvara 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.
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.
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.
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.
<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.
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.
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_HOST2. 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
- Obrišite aplikaciju s uređaja, pa instalirajte potpisani build.
- Otvorite stvarni Kixo link iz Notes, Messages ili Safarija. Nemojte ga samo zalijepiti u adresnu traku Safarija i to uzeti kao jedini test.
- Potvrdite da otvaranje iz ugašenog stanja pokreće aplikaciju na očekivanom ekranu.
- Ostavite aplikaciju otvorenu, ponovo dodirnite link i potvrdite toplo otvaranje.
- 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.
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.