Lidhje të thella
Kixo Deep Links e çojnë çdo person te destinacioni më i përshtatshëm që është i disponueshëm. Nëse aplikacioni është i instaluar, i njëjti link HTTPS me markën tënde hap ekranin e duhur në aplikacion. Përndryshe, mund të hapë sajtin tënd, App Store ose fallback-un e Google Play. Sistemi operativ merret me hapjen e verifikuar të aplikacionit; kur link-u përfundon në shfletues, Kixo zbaton fallback-un e ruajtur për atë link.
Fillo në Kixo
Hap Cilësimet e projektit → Lidhje të thella, krijo një adresë dhe kopjo konfigurimin që shfaqet për të. Host-i në dashboard është burimi i vetëm i saktë për çdo fragment më poshtë.
Si hapet link-u
| Pajisja e personit | Rezultati |
|---|---|
| Aplikacioni është i instaluar dhe konfigurimi i app link është i saktë | Aplikacioni hapet drejtpërdrejt te destinacioni i link-ut. |
| Aplikacioni nuk është i instaluar | Kixo përdor fallback-un e sajtit ose të store-it që është zgjedhur për link-un. |
| Shfletues desktopi | Hapet fallback-u i sajtit. |
| Konfigurimi i aplikacionit nuk është i plotë | Hapet fallback-u i sigurt në vend që të shfaqet një kërkesë e prishur për aplikacionin. |
Përdor host-in e saktë me markë
Një host link-u Kixo i përket një projekti dhe duket si yourbrand.kixo.cc. Projektet e zhvillimit mund të përdorin një prapashtesë tjetër të menaxhuar nga Kixo. Kopjo gjithmonë host-in e plotë nga dashboard-i.
Wildcard-et nuk funksionojnë
Konfiguro yourbrand.kixo.cc, jo *.kixo.cc dhe jo kixo.cc. Android dhe iOS verifikojnë host-in e saktë që hap përdoruesi.
Sajti dhe handoff me QR
Web SDK e dallon automatikisht mbërritjen nga një link Kixo. Përdor getLinkData() vetëm kur sajtit tënd i duhet konteksti i zgjidhur i fushatës ose parametrat e personalizuar në router-in e vet.
const link = Kixo.getLinkData();
if (link?.params.product_id) {
// URL values are user-controlled. Allowlist them before routing.
router.openProduct(link.params.product_id);
}Ofro “Open in app” në uebin celular
Kalo URL-në e plotë publike të link-ut që kthen Kixo. Baneri shfaqet vetëm në uebin celular dhe i lejon link-ut Kixo të zgjedhë mes aplikacionit të instaluar, store-it ose destinacionit të sajtit.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Vazhdo një sesion desktopi me një kod QR
Për një QR të shfaqur brenda sajtit tënd, kërkoji Kixo të krijojë një handoff për një link ekzistues në vend që ta ndërtosh vetë URL. Kixo përdor destinacionet e aplikacionit dhe të sajtit të ruajtura për atë link.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Përdor vlerat që kthen Kixo
Kalo ID-në e link-ut nga Kixo dhe shfaqe URL-në e kthyer pa asnjë ndryshim. params janë opsionale dhe shtojnë kontekst për rrugën e lejuar të aplikacionit ose të sajtit; ato nuk e zëvendësojnë destinacionin e link-ut. Mos kalo user ID ose device ID.
Android App Links
Para se të ndryshosh kodin, ruaj emrin e paketës Android dhe çdo fingerprint SHA-256 të nënshkrimit të aplikacionit te Aplikacionet dhe konfigurimi. Nëse release nënshkruhet nga Google Play, shto edhe fingerprint-in e Play App Signing, si edhe çdo fingerprint që përdoret nga build-et direkte ose të brendshme.
1. Shto host-in te manifesti
Vendose këtë intent filter te activity që kontrollon navigimin e aplikacionit. Zëvendëso vetëm placeholder-in e host-it.
<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. Përcill hapjet warm
Kixo SDK lexon një App Link në cold start. Kur Android ripërdor një activity ekzistuese, përcille intent-in e ri që hapja warm të ndjekë të njëjtën rrjedhë atribuimi dhe drejtimi.
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. Verifikoni Android
Riinstalo aplikacionin pasi të ndryshosh manifest-in, pastaj kërkoji Android të verifikojë host-in dhe kontrollo rezultatin.
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"Këshillë
Shfaqja e zgjedhësit të shfletuesit zakonisht do të thotë që host-i i saktë, emri i paketës ose fingerprint-i i nënshkrimit nuk përputhet. Kontrollo këto tri vlera para se të ndryshosh kodin e navigimit të aplikacionit.
iOS Universal Links
Ruaj bundle ID të aplikacionit dhe Apple team ID te Aplikacionet dhe konfigurimi. Në Xcode, aktivizo capability Associated Domains në të njëjtin app target dhe në të njëjtin konfigurim nënshkrimi që përdor build-i i instaluar.
1. Shtoni domenin përkatës
applinks:YOUR_EXACT_KIXO_HOST2. Përcillni lidhjet cold dhe warm
Zgjidh lifecycle-in që përdor aplikacioni. Të dy shembujt ia kalojnë destinacionin e zgjidhur router-it tënd; Kixo nuk zëvendëson navigimin e aplikacionit.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Verifikoni iOS
- Fshije aplikacionin nga pajisja dhe pastaj instalo build-in e nënshkruar.
- Hap një link real Kixo nga Notes, Messages ose Safari. Mos e ngjit në shiritin e adresës së Safari si të vetmin test.
- Konfirmo që një prekje cold e hap aplikacionin në ekranin e pritur.
- Lëre aplikacionin hapur, preke sërish link-un dhe konfirmo hapjen warm.
- Konfirmo që hapja e link-ut shfaqet në Kixo.
Mbaje drejtimin brenda aplikacionit
Një link Kixo mund të përfshijë një destinacion si /products/42. Lidhi rrugët e njohura me ekranet e tua dhe ruaj kontrollet ekzistuese të aksesit në aplikacion. Mos e kthe vlerën e zgjidhur në një hapës të përgjithshëm URL-sh.
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()
}
}Jepja këtë një asistenti për kodim
Zëvendëso pesë placeholder-at me vlera nga Cilësimet e projektit → Aplikacionet & konfigurimi dhe Lidhje të thella, pastaj ngjit brief-in e plotë në Codex, Claude Code, Cursor, Windsurf ose në një asistent tjetër për kodim.
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Çfarë nuk duhet të hamendësojë asistenti
Host-i me markë, emri i paketës, fingerprint-et e nënshkrimit, bundle ID dhe Apple team ID vijnë nga aplikacioni yt dhe nga projekti yt në Kixo. Një asistent mund ta lidhë kodin, por duhet të ndalet dhe të raportojë kur mungon një vlerë, jo ta sajojë vetë.
Lista e kontrollit për release
- Host-i i saktë Kixo është i pranishëm në konfigurimin për Android dhe iOS.
- Android e raporton host-in si të verifikuar për paketën release.
- Fingerprint-et e nënshkrimit për release janë ruajtur në Kixo.
- Entitlement-i i iOS është i pranishëm në build-in e nënshkruar të aplikacionit.
- Hapjet cold dhe warm shkojnë te ekrani i pritur.
- Fallback-u i sajtit ose i store-it funksionon edhe pa aplikacionin e instaluar.
- Hapja e link-ut shfaqet në analitikën e Kixo.