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đaj | Rezultat |
|---|---|
| Aplikacija je instalirana i App Link je ispravno postavljen | Aplikacija se otvara izravno na odredišnom ekranu poveznice. |
| Aplikacija nije instalirana | Kixo koristi fallback na web-stranicu ili trgovinu odabran za tu poveznicu. |
| Preglednik na računalu | Otvara se fallback na web-stranicu. |
| Postavljanje aplikacije nije dovršeno | Otvara 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.
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.
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.
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.
<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.
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.
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_HOST2. 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
- Uklonite aplikaciju s uređaja, zatim instalirajte potpisani build.
- Otvorite stvarnu Kixo poveznicu iz Notes, Messages ili Safarija. Nemojte je samo lijepiti u adresnu traku Safarija i to smatrati jedinim testom.
- Potvrdite da hladno otvaranje pokreće aplikaciju na očekivanom ekranu.
- Ostavite aplikaciju otvorenom, ponovno dodirnite poveznicu i potvrdite toplo otvaranje.
- 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.
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.