Deep linky
Kixo Deep Links pošlú každého používateľa na najvhodnejší dostupný cieľ. Ak má aplikáciu nainštalovanú, rovnaký značkový HTTPS odkaz otvorí správnu obrazovku v aplikácii. Inak sa môže otvoriť váš web, App Store alebo fallback na Google Play. Overené otvorenie aplikácie rieši operačný systém; keď sa odkaz otvorí v prehliadači, Kixo použije fallback uložený pri danom odkaze.
Začnite v Kixo
Otvorte Nastavenia projektu → Hlboké odkazy, vytvorte adresu a skopírujte nastavenie zobrazené pre túto adresu. Host v dashboarde je rozhodujúci zdroj pre všetky ukážky nižšie.
Ako sa odkaz otvorí
| Zariadenie používateľa | Výsledok |
|---|---|
| Aplikácia je nainštalovaná a App Links sú nastavené správne | Aplikácia sa otvorí priamo na cieľovej obrazovke odkazu. |
| Aplikácia nie je nainštalovaná | Kixo použije webový fallback alebo fallback do obchodu vybraný pre daný odkaz. |
| Desktopový prehliadač | Otvorí sa webový fallback. |
| Nastavenie aplikácie nie je dokončené | Otvorí sa bezpečný fallback namiesto nefunkčnej výzvy na otvorenie aplikácie. |
Použite presný značkový host
Host odkazu Kixo patrí jednému projektu a vyzerá napríklad takto: yourbrand.kixo.cc. Vývojové projekty môžu používať inú koncovku spravovanú službou Kixo. Z dashboardu vždy skopírujte celý host.
Zástupné znaky nefungujú
Nakonfigurujte yourbrand.kixo.cc, nie *.kixo.cc ani kixo.cc. Android aj iOS overujú presný host, ktorý človek otvorí.
Web a QR handoff
SDK pre web automaticky rozpozná pristátie z odkazu Kixo. getLinkData() použite len vtedy, keď váš web potrebuje vo vlastnom routeri vyriešený kontext kampane alebo vlastné parametre.
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 mobilnom webe ponúknite „Otvoriť v aplikácii“
Odovzdajte úplnú verejnú URL odkazu, ktorú vráti Kixo. Banner sa zobrazuje iba na mobilnom webe a nechá odkaz Kixo vybrať cieľ: nainštalovanú aplikáciu, obchod alebo web.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Pokračovanie desktopovej relácie cez QR kód
Ak zobrazujete QR kód na svojom webe, požiadajte Kixo, aby pre existujúci odkaz vytvorilo handoff, namiesto toho, aby ste URL skladali sami. Kixo použije cieľ v aplikácii aj na webe uložený pri danom odkaze.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Použite hodnoty, ktoré vráti Kixo
Odovzdajte ID odkazu z Kixo a vrátenú URL vykreslite bez zmien. Voliteľné params doplnia kontext pre povolenú trasu v aplikácii alebo na webe; nenahrádzajú cieľ odkazu. Neodovzdávajte user ID ani device ID.
Android App Links
Pred úpravou kódu si do Aplikácie a nastavenie uložte názov balíka pre Android a všetky SHA-256 fingerprinty podpisu aplikácie. Ak release podpisuje Google Play, pridajte fingerprint Play App Signing aj všetky fingerprinty používané pri priamych alebo interných buildoch.
1. Pridajte hostiteľa do manifestu
Tento intent filter pridajte na activity, ktorá riadi navigáciu aplikácie. Nahraďte iba zástupný 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. Prepošlite otvorenia pri teplom spustení
Kixo SDK načíta App Link pri studenom štarte. Keď Android znovu použije existujúcu activity, prepošlite jej nový intent, aby teplé otvorenie prešlo rovnakou cestou atribúcie aj smerovania.
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. Overte Android
Po zmene manifestu aplikáciu preinštalujte, potom nechajte Android overiť host a skontrolujte výsledok.
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"Tip
Ak sa zobrazí výber prehliadača, zvyčajne sa nezhoduje presný host, názov balíka alebo podpisový fingerprint. Skôr než upravíte navigačný kód aplikácie, skontrolujte tieto tri hodnoty.
iOS Universal Links
Do Aplikácie a nastavenie uložte bundle ID aplikácie a Apple team ID. V Xcode zapnite capability Associated Domains na tom istom targete aplikácie a v tej istej signing konfigurácii, akú používa nainštalovaný build.
1. Pridajte príslušnú doménu
applinks:YOUR_EXACT_KIXO_HOST2. Prepošlite odkazy pri studenom aj teplom spustení
Vyberte lifecycle, ktorý aplikácia používa. Oba príklady odovzdajú vyriešený cieľ vášmu routeru; Kixo nenahrádza navigáciu aplikácie.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Overte iOS
- Odstráňte aplikáciu zo zariadenia a potom nainštalujte podpísaný build.
- Otvorte skutočný odkaz Kixo cez Notes, Messages alebo Safari. Nevkladajte ho do adresného riadka Safari ako jediný test.
- Overte, že klepnutie pri studenom spustení otvorí aplikáciu na očakávanej obrazovke.
- Nechajte aplikáciu spustenú, znova klepnite na odkaz a overte teplé otvorenie.
- Overte, že otvorenie odkazu sa zobrazuje v Kixo.
Smerovanie nechajte vo svojej aplikácii
Odkaz Kixo môže niesť cieľ, napríklad /products/42. Známe cesty namapujte na vlastné obrazovky a zachovajte existujúce kontroly prístupu v aplikácii. Z vyriešenej hodnoty nerobte všeobecný otvárač 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()
}
}Dajte to programovaciemu asistentovi
Nahraďte päť zástupných hodnôt hodnotami z Nastavenia projektu → Aplikácie a nastavenie a Hlboké odkazy a potom vložte celé zadanie do Codex, Claude Code, Cursor, Windsurf alebo iného programovacieho asistenta.
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Čo asistent nesmie domýšľať
Značkový host, názov balíka, podpisové fingerprinty, bundle ID a Apple team ID pochádzajú z vašej aplikácie a projektu Kixo. Asistent môže pripraviť kód, ale ak niektorá hodnota chýba, musí sa zastaviť a nahlásiť to, nie si ju vymyslieť.
Kontrolný zoznam pred release
- V nastavení pre Android aj iOS je uvedený presný host Kixo.
- Android hlási, že host je overený pre release balík.
- Release podpisové fingerprinty sú uložené v Kixo.
- V podpísanom builde aplikácie je prítomný entitlement pre iOS.
- Studené aj teplé otvorenie vedie na očakávanú obrazovku.
- Webový fallback alebo fallback do obchodu funguje aj bez nainštalovanej aplikácie.
- Otvorenie odkazu sa zobrazuje v analytike Kixo.