Sakon estekak
Kixo Deep Links-ek pertsona bakoitza eskuragarri dagoen helmugarik egokienera bidaltzen du. Aplikazioa instalatuta badago, markako HTTPS esteka berak pantaila egokia irekitzen du aplikazioan. Bestela, zure webgunea, App Store edo Google Play fallback-a ireki dezake. Sistema eragileak egiaztatutako aplikazio-irekiera kudeatzen du; esteka nabigatzailera iristen denean, Kixok esteka horretarako gordetako fallback-a aplikatzen du.
Hasi Kixon
Ireki Proiektuaren ezarpenak → Esteka sakonak, sortu helbide bat, eta kopiatu helbide horretarako erakusten den konfigurazioa. Dashboardeko host-a da beheko snippet guztien erreferentzia nagusia.
Nola irekitzen den esteka bat
| Pertsonaren gailua | Emaitza |
|---|---|
| Aplikazioa instalatuta dago, eta app-link konfigurazioa baliozkoa da | Aplikazioa zuzenean irekitzen da estekaren helmugan. |
| Aplikazioa ez dago instalatuta | Kixok estekarentzat hautatutako webgune edo dendako fallback-a erabiltzen du. |
| Mahaigaineko nabigatzailea | Webguneko fallback-a irekitzen da. |
| Aplikazioaren konfigurazioa osatu gabe dago | Fallback segurua irekitzen da, hautsitako aplikazio-mezu bat erakutsi beharrean. |
Erabili markako host zehatza
Kixo esteka baten host-a proiektu bakar bati dagokio, eta yourbrand.kixo.cc itxura izaten du. Garapen-proiektuek Kixok kudeatutako beste amaiera bat erabil dezakete. Kopiatu beti host osoa dashboardetik.
Wildcard-ek ez dute balio
Konfiguratu yourbrand.kixo.cc, ez *.kixo.cc eta ez kixo.cc. Android-ek eta iOS-ek pertsonak irekitzen duen host zehatza egiaztatzen dute.
Webgunea eta QR handoff-a
Web SDKak automatikoki ezagutzen du Kixo esteka baten landing-a. Erabili getLinkData() bakarrik zure webguneak ebatzitako campaign testuingurua edo parametro pertsonalizatuak bere routerrean behar dituenean.
const link = Kixo.getLinkData();
if (link?.params.product_id) {
// URL values are user-controlled. Allowlist them before routing.
router.openProduct(link.params.product_id);
}Eskaini “Open in app” mugikorreko webean
Pasa Kixok itzulitako public link URL osoa. Banner-a mugikorreko webean bakarrik erakusten da, eta Kixo estekari uzten dio instalatutako aplikazioa, denda edo web-helmuga aukeratzen.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Jarraitu mahaigaineko saioa QR kode batetik
QR bat zure webgunean erakusten baduzu, eskatu Kixori lehendik dagoen esteka baterako handoff bat sortzeko, URL bat zuk zeuk eraiki beharrean. Kixok esteka horretarako gordetako aplikazio- eta web-helmugak erabiltzen ditu.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Erabili Kixok itzulitako balioak
Pasa Kixoko link IDa, eta errendatu itzulitako URL-a aldatu gabe. Aukerako params balioek testuingurua gehitzen diote allowlist-ean dagoen aplikazio- edo web-bide bati; ez dute estekaren helmuga ordezkatzen. Ez pasa user ID edo device IDrik.
Android App Links
Kodea editatu aurretik, gorde Android pakete-izena eta SHA-256 aplikazio-sinaduraren hatz-marka guztiak Aplikazioak eta konfigurazioa-n. Release bertsioa Google Play-k sinatzen badu, gehitu Play App Signing hatz-marka, baita build zuzen edo barnekoek erabiltzen duten beste edozein hatz-marka ere.
1. Gehitu ostalaria manifestuan
Jarri intent filter hau aplikazioaren nabigazioa kudeatzen duen activity-an. Ordeztu host-erreserba bakarrik.
<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. Birbideratu irekitze beroak
Kixo SDKak hotzean abiatutako App Link bat irakurtzen du. Android-ek lehendik dagoen activity bat berrerabiltzen duenean, bidali intent berria aurrera, warm open-ak atribuzio- eta bideratze-bide bera jarrai dezan.
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. Egiaztatu Android
Manifest-a aldatu ondoren, berrinstalatu aplikazioa, gero eskatu Android-i host-a egiaztatzeko, eta aztertu emaitza.
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"Aholkua
Nabigatzailea aukeratzeko leihoa agertzen bada, normalean host zehatza, pakete-izena edo sinadura-hatz-marka ez datoz bat. Egiaztatu hiru balio horiek aplikazioaren nabigazio-kodea aldatu aurretik.
iOS Universal Links
Gorde aplikazioaren bundle IDa eta Apple team IDa Aplikazioak eta konfigurazioa-n. Xcode-n, gaitu Associated Domains capability-a instalatutako build-ak erabiltzen duen app target eta signing konfigurazio berean.
1. Gehitu lotutako domeinua
applinks:YOUR_EXACT_KIXO_HOST2. Birbideratu hotzeko eta berozko estekak
Aukeratu aplikazioak erabiltzen duen lifecycle-a. Bi adibideek ebatzitako helmuga zure routerrera bidaltzen dute; Kixok ez du aplikazioaren nabigazioa ordezkatzen.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Egiaztatu iOS
- Ezabatu aplikazioa gailutik, eta instalatu berriro sinatutako build-a.
- Ireki benetako Kixo esteka bat Notes, Messages edo Safari-tik. Ez erabili Safari-ko helbide-barra proba bakar gisa.
- Baieztatu cold tap batek aplikazioa espero den pantailan abiarazten duela.
- Utzi aplikazioa irekita, ukitu berriro esteka, eta baieztatu warm open-a.
- Baieztatu estekaren irekiera Kixon agertzen dela.
Mantendu bideraketa aplikazioaren barruan
Kixo esteka batek /products/42 bezalako helmuga bat eraman dezake. Mapeatu bide ezagunak zure pantailetara, eta mantendu aplikazioak lehendik dituen sarbide-egiaztapenak. Ez erabili ebatzitako balioa erabilera orokorreko URL irekitzaile gisa.
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()
}
}Eman hau kode-laguntzaile bati
Ordeztu bost erreserbak Proiektuaren ezarpenak → Aplikazioak eta konfigurazioa eta Esteka sakonak-ko balioekin, eta itsatsi brief osoa Codex, Claude Code, Cursor, Windsurf edo beste kode-laguntzaile batean.
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 changeLaguntzaileak asmatu behar ez duena
Markako host-a, pakete-izena, sinadura-hatz-markak, bundle IDa eta Apple team IDa zure aplikaziotik eta Kixo proiektutik datoz. Laguntzaile batek kodea prestatu dezake, baina falta den balioren bat asmatzen hasi ordez gelditu eta jakinarazi egin behar du.
Argitalpenaren egiaztapen-zerrenda
- Kixo host zehatza Android eta iOS konfigurazioan dago.
- Android-ek host-a egiaztatutzat ematen du release paketearentzat.
- Release sinaduraren hatz-markak Kixon gordeta daude.
- iOS entitlement-a sinatutako aplikazio-build-ean dago.
- Cold eta warm irekitzeek espero den pantailara eraman behar dute.
- Webgune edo dendako fallback-ak ondo funtzionatzen du aplikazioa instalatuta ez dagoenean ere.
- Estekaren irekiera Kixo analitikan agertzen da.