Duboki linkovi
Kixo Deep Links vode svaku osobu na najbolje dostupno odredište. Ako je aplikacija instalirana, isti brendirani HTTPS link otvara pravi ekran u aplikaciji. U suprotnom može da otvori vaš sajt, App Store ili Google Play rezervno odredište. Operativni sistem upravlja otvaranjem verifikovane aplikacije; kada link stigne do pregledača, Kixo primenjuje rezervno odredište sačuvano za taj link.
Počnite u Kixo
Otvorite Podešavanja projekta → Duboki linkovi, napravite adresu i kopirajte podešavanje prikazano za tu adresu. Host u dashboardu je izvor istine za svaki isečak ispod.
Kako se link otvara
| Uređaj korisnika | Rezultat |
|---|---|
| Aplikacija je instalirana i podešavanje App Link-a je ispravno | Aplikacija se otvara direktno na odredištu linka. |
| Aplikacija nije instalirana | Kixo koristi rezervno odredište za sajt ili prodavnicu izabrano za taj link. |
| Pregledač na računaru | Otvara se rezervno odredište za sajt. |
| Podešavanje aplikacije nije dovršeno | Otvara se bezbedno rezervno odredište umesto neispravnog poziva za otvaranje aplikacije. |
Koristite tačan brendirani host
Host Kixo linka pripada jednom projektu i izgleda ovako: yourbrand.kixo.cc. Razvojni projekti mogu da koriste drugačiji sufiks kojim upravlja Kixo. Uvek kopirajte ceo host iz dashboarda.
Džokeri ne rade
Podesite yourbrand.kixo.cc, ne *.kixo.cc i ne kixo.cc. Android i iOS verifikuju tačan host koji osoba otvara.
Sajt i QR handoff
Web SDK automatski prepoznaje dolazak sa Kixo linka. Koristite getLinkData() samo kada vašem sajtu u sopstvenom routeru trebaju razrešeni kontekst kampanje ili prilagođeni parametri.
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 vebu
Prosledite pun javni URL linka koji Kixo vrati. Traka se prikazuje samo na mobilnom vebu i omogućava da Kixo link izabere instaliranu aplikaciju, prodavnicu ili odredište na sajtu.
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čunaru pomoću QR koda
Za QR prikazan na vašem sajtu, tražite od Kixo da napravi handoff za postojeći link umesto da sami sastavljate URL. Kixo koristi odredišta za aplikaciju i sajt sačuvana za taj link.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Koristite vrednosti koje vrati Kixo
Prosledite ID linka iz Kixo i prikažite vraćeni URL bez izmena. Opcioni params dodaju kontekst za dozvoljenu rutu aplikacije ili sajta; ne zamenjuju odredište linka. Ne prosleđujte korisnički ID niti ID uređaja.
Android App Links
Pre nego što menjate kod, sačuvajte Android naziv paketa i svaki SHA-256 otisak potpisa aplikacije u Aplikacije i podešavanje. Ako Google Play potpisuje release, dodajte i Play App Signing otisak, kao i sve otiske koji se koriste za direktne ili interne buildove.
1. Dodajte host u manifest
Postavite ovaj intent filter na aktivnost koja upravlja navigacijom u aplikaciji. Zamenite 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. Prosledite topla otvaranja
Kixo SDK čita App Link pri hladnom pokretanju. Kada Android ponovo upotrebi postojeću aktivnost, prosledite njen novi intent da bi i toplo otvaranje pratilo isti tok atribucije i rutiranja.
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. Proverite Android
Posle izmene manifesta ponovo instalirajte aplikaciju, zatim zatražite od Android da verifikuje host i proverite 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"Savet
Ako se prikaže izbor pregledača, to obično znači da se ne poklapaju tačan host, naziv paketa ili otisak potpisa. Proverite te tri vrednosti pre nego što menjate kod za navigaciju u aplikaciji.
iOS Universal Links
Sačuvajte bundle ID aplikacije i Apple team ID u Aplikacije i podešavanje. U Xcode-u uključite mogućnost Associated Domains na istom targetu aplikacije i u istoj signing konfiguraciji koju koristi instalirani build.
1. Dodajte povezani domen
applinks:YOUR_EXACT_KIXO_HOST2. Prosledite hladna i topla otvaranja linkova
Izaberite lifecycle koji aplikacija koristi. Oba primera prosleđuju razrešeno odredište vašem routeru; Kixo ne zamenjuje navigaciju u aplikaciji.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Proverite iOS
- Obrišite aplikaciju sa uređaja, pa instalirajte potpisani build.
- Otvorite pravi Kixo link iz aplikacije Notes, Messages ili Safari. Nemojte da vam jedini test bude lepljenje linka u adresnu traku Safari-ja.
- Potvrdite da hladno otvaranje pokreće aplikaciju na očekivanom ekranu.
- Ostavite aplikaciju pokrenutu, ponovo dodirnite link i potvrdite toplo otvaranje.
- Potvrdite da se otvaranje linka vidi u Kixo.
Zadržite rutiranje unutar aplikacije
Kixo link može da nosi odredište kao što je /products/42. Poznate putanje mapirajte na svoje ekrane i zadržite postojeće provere pristupa u aplikaciji. Razrešenu vrednost ne pretvarajte u opšti otvarač URL adresa.
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()
}
}Prosledite ovo asistentu za programiranje
Zamenite pet placeholdera vrednostima iz Podešavanja projekta → Aplikacije i podešavanje i Duboki linkovi, pa ceo sažetak nalepite 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 sme da nagađa
Brendirani host, naziv paketa, otisci potpisa, bundle ID i Apple team ID dolaze iz vaše aplikacije i Kixo projekta. Asistent može da poveže kod, ali treba da stane i prijavi vrednost koja nedostaje umesto da je izmisli.
Kontrolna lista za release
- Tačan Kixo host je unet i u Android i u iOS podešavanje.
- Android prijavljuje da je host verifikovan za release paket.
- Otisci release potpisa sačuvani su u Kixo.
- iOS entitlement je prisutan u potpisanom buildu aplikacije.
- Hladno i toplo otvaranje vode na očekivani ekran.
- Rezervno odredište za sajt ili prodavnicu radi i kada aplikacija nije instalirana.
- Otvaranje linka se vidi u Kixo analitici.