Globoke povezave
Kixo Deep Links vsako osebo usmerijo na najboljši razpoložljivi cilj. Če je aplikacija nameščena, isti znamčeni HTTPS povezava odpre pravi zaslon v aplikaciji. Sicer se lahko odpre vaše spletno mesto, App Store ali Google Play kot nadomestni cilj. Preverjeno odpiranje aplikacije izvede operacijski sistem; če povezava pristane v brskalniku, Kixo uporabi nadomestni cilj, shranjen za to povezavo.
Začnite v Kixo
Odprite Nastavitve projekta → Globoke povezave, ustvarite naslov in kopirajte nastavitev, prikazano za ta naslov. Gostitelj na nadzorni plošči je referenčni vir za vse spodnje primere.
Kako se povezava odpre
| Naprava osebe | Rezultat |
|---|---|
| Aplikacija je nameščena in nastavitev App Link je veljavna | Aplikacija se odpre neposredno na cilj povezave. |
| Aplikacija ni nameščena | Kixo uporabi nadomestni cilj za spletno mesto ali trgovino, izbran za to povezavo. |
| Namizni brskalnik | Odpre se nadomestni cilj spletnega mesta. |
| Nastavitev aplikacije ni dokončana | Namesto pokvarjenega poziva za odprtje aplikacije se odpre varen nadomestni cilj. |
Uporabite točen znamčeni gostitelj
Gostitelj povezave Kixo pripada enemu projektu in je videti kot yourbrand.kixo.cc. Razvojni projekti lahko uporabljajo drugo končnico, ki jo upravlja Kixo. Celoten gostitelj vedno kopirajte z nadzorne plošče.
Nadomestni znaki ne delujejo
Nastavite yourbrand.kixo.cc, ne *.kixo.cc in ne kixo.cc. Android in iOS preverjata točen gostitelj, ki ga oseba odpre.
Spletno mesto in QR handoff
Web SDK samodejno prepozna prihod prek povezave Kixo. getLinkData() uporabite samo, če vaše spletno mesto v svojem usmerjevalniku potrebuje razrešeni kontekst kampanje ali parametre po meri.
const link = Kixo.getLinkData();
if (link?.params.product_id) {
// URL values are user-controlled. Allowlist them before routing.
router.openProduct(link.params.product_id);
}Na mobilnem spletu ponudite »Odpri v aplikaciji«
Posredujte celoten javni URL povezave, ki ga vrne Kixo. Pasica se prikaže samo na mobilnem spletu in povezavi Kixo prepusti izbiro med nameščeno aplikacijo, trgovino ali ciljem spletnega mesta.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Nadaljujte sejo na namizju s kodo QR
Za kodo QR na vašem spletnem mestu naj Kixo ustvari handoff za obstoječo povezavo, namesto da URL sestavite sami. Kixo uporabi cilja za aplikacijo in spletno mesto, shranjena za to povezavo.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Uporabite vrednosti, ki jih vrne Kixo
Posredujte ID povezave iz Kixo in vrnjeni URL prikažite nespremenjen. Izbirni params dodajo kontekst za dovoljeno pot v aplikaciji ali na spletnem mestu; ne nadomeščajo cilja povezave. Ne posredujte ID-ja uporabnika ali ID-ja naprave.
Android App Links
Preden urejate kodo, v Aplikacije in nastavitev shranite ime paketa za Android in vse podpisne prstne odtise aplikacije SHA-256. Če izdajo podpisuje Google Play, dodajte še prstni odtis Play App Signing ter vse prstne odtise, uporabljene za neposredne ali interne build-e.
1. Dodajte gostitelja v manifest
Ta intent filter dodajte dejavnosti, ki upravlja navigacijo po aplikaciji. Zamenjajte samo nadomestni gostitelj.
<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. Posredujte topla odpiranja
Kixo SDK pri hladnem zagonu prebere App Link. Ko Android znova uporabi obstoječo activity, posredujte njen novi intent, da bo toplo odpiranje sledilo isti poti atribucije in usmerjanja.
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. Preverite Android
Po spremembi manifesta znova namestite aplikacijo, nato Androidu naročite preverjanje gostitelja in preverite 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"Namig
Izbirnik brskalnika navadno pomeni, da se točen gostitelj, ime paketa ali podpisni prstni odtis ne ujemajo. Preden posežete v kodo za navigacijo po aplikaciji, preverite vse tri vrednosti.
iOS Universal Links
V Aplikacije in nastavitev shranite bundle ID aplikacije in Apple team ID. V Xcode omogočite zmožnost Associated Domains na istem cilju aplikacije in v isti konfiguraciji podpisovanja kot pri nameščenem buildu.
1. Dodajte povezano domeno
applinks:YOUR_EXACT_KIXO_HOST2. Posredujte hladna in topla odpiranja povezav
Izberite življenjski cikel, ki ga uporablja vaša aplikacija. Oba primera razrešeni cilj posredujeta vašemu usmerjevalniku; Kixo ne nadomešča navigacije v aplikaciji.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Preverite iOS
- Iz naprave izbrišite aplikacijo, nato namestite podpisani build.
- Odprite pravo povezavo Kixo iz aplikacije Notes, Messages ali Safari. Za edini test je ne lepite samo v naslovno vrstico Safarija.
- Potrdite, da tap na zaprto aplikacijo odpre pričakovani zaslon.
- Aplikacijo pustite odprto, znova tapnite povezavo in potrdite toplo odpiranje.
- Potrdite, da se odprtje povezave prikaže v Kixo.
Usmerjanje naj ostane znotraj vaše aplikacije
Povezava Kixo lahko vsebuje cilj, na primer /products/42. Znane poti preslikajte na svoje zaslone in ohranite obstoječa preverjanja dostopa v aplikaciji. Razrešene vrednosti ne uporabite kot splošni odpiralnik URL.
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()
}
}To predajte pomočniku za programiranje
Pet nadomestnih mest zamenjajte z vrednostmi iz Nastavitve projekta → Aplikacije in nastavitev in Globoke povezave, nato celotno navodilo prilepite v Codex, Claude Code, Cursor, Windsurf ali drugega pomočnika 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Česa pomočnik ne sme ugibati
Znamčeni gostitelj, ime paketa, podpisni prstni odtisi, bundle ID in Apple team ID izhajajo iz vaše aplikacije in projekta Kixo. Pomočnik lahko poveže kodo, vendar se mora ob manjkajoči vrednosti ustaviti in jo prijaviti, ne pa si je izmisliti.
Kontrolni seznam za izdajo
- Točen gostitelj Kixo je nastavljen tako v Android kot v iOS konfiguraciji.
- Android poroča, da je gostitelj preverjen za produkcijski paket.
- Podpisni prstni odtisi izdaje so shranjeni v Kixo.
- Entitlement za iOS je prisoten v podpisanem buildu aplikacije.
- Hladno in toplo odpiranje pripeljeta na pričakovani zaslon.
- Nadomestni cilj za spletno mesto ali trgovino deluje tudi brez nameščene aplikacije.
- Odprtje povezave je vidno v analitiki Kixo.