Deep linky
Kixo Deep Links pošlou každého uživatele na nejlepší dostupný cíl. Pokud je aplikace nainstalovaná, stejný brandovaný HTTPS odkaz otevře správnou obrazovku v aplikaci. Jinak se může otevřít váš web, App Store nebo fallback do Google Play. Ověřené otevření aplikace řeší operační systém; pokud se odkaz dostane do prohlížeče, Kixo použije fallback uložený pro daný odkaz.
Začněte v Kixo
Otevřete Nastavení projektu → Deep linky, vytvořte adresu a zkopírujte nastavení zobrazené pro tuto adresu. Host v dashboardu je rozhodující zdroj pro všechny ukázky níže.
Jak se odkaz otevře
| Zařízení uživatele | Výsledek |
|---|---|
| Aplikace je nainstalovaná a App Links jsou nastavené správně | Aplikace se otevře přímo v cíli odkazu. |
| Aplikace není nainstalovaná | Kixo použije fallback na web nebo do obchodu vybraný pro daný odkaz. |
| Prohlížeč na desktopu | Otevře se fallback na web. |
| Nastavení aplikace není kompletní | Místo nefunkční výzvy k otevření aplikace se otevře bezpečný fallback. |
Použijte přesný brandovaný host
Host odkazu Kixo patří vždy jen k jednomu projektu a vypadá například takto: yourbrand.kixo.cc. Vývojové projekty mohou používat jinou koncovku spravovanou Kixo. Z dashboardu vždy kopírujte celý host.
Zástupné znaky nefungují
Nastavte yourbrand.kixo.cc, ne *.kixo.cc ani kixo.cc. Android a iOS ověřují přesný host, který uživatel otevře.
Web a QR handoff
Web SDK automaticky rozpozná příchod z odkazu Kixo. getLinkData() použijte jen tehdy, když váš web potřebuje ve vlastním routeru vyhodnocený kontext kampaně nebo vlastní parametry.
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 mobilním webu nabídněte „Otevřít v aplikaci“
Předejte kompletní veřejnou URL odkazu, kterou vrátí Kixo. Banner se zobrazuje jen na mobilním webu a nechá odkaz Kixo vybrat nainstalovanou aplikaci, obchod nebo cíl na webu.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Pokračování relace z desktopu přes QR kód
Pokud QR kód zobrazujete na svém webu, nechte Kixo vytvořit handoff pro existující odkaz, místo abyste URL skládali sami. Kixo použije cíle pro aplikaci a web uložené u daného odkazu.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Použijte hodnoty vrácené z Kixo
Předejte ID odkazu z Kixo a vrácenou URL vykreslete beze změny. Volitelné params přidají kontext pro povolenou trasu aplikace nebo webu; nenahrazují cíl odkazu. Nepředávejte user ID ani device ID.
Android App Links
Než upravíte kód, uložte do Aplikace a nastavení název balíčku Android a všechny SHA-256 otisky podpisu aplikace. Pokud produkční verzi podepisuje Google Play, přidejte i otisk Play App Signing a všechny otisky používané pro přímé nebo interní buildy.
1. Přidejte hostitele do manifestu
Tento intent filter přidejte k activity, která řídí navigaci aplikace. Nahraďte pouze 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. Předejte odkazy při otevření běžící aplikace
Kixo SDK načte App Link při studeném startu. Když Android znovu použije existující activity, předejte nový intent dál, aby teplé otevření prošlo stejnou atribuční a směrovací cestou.
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. Ověřte Android
Po změně manifestu aplikaci přeinstalujte, potom nechte Android ověřit host a zkontrolujte výsledek.
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
Nabídka výběru prohlížeče obvykle znamená, že nesedí přesný host, název balíčku nebo otisk podpisu. Než začnete měnit kód navigace v aplikaci, zkontrolujte tyto tři hodnoty.
iOS Universal Links
Do Aplikace a nastavení uložte bundle ID aplikace a Apple team ID. V Xcode zapněte capability Associated Domains na stejném targetu aplikace a se stejnou konfigurací podepisování, jakou používá nainstalovaný build.
1. Přidejte odpovídající doménu
applinks:YOUR_EXACT_KIXO_HOST2. Předejte odkazy při studeném spuštění i za běhu
Vyberte životní cyklus, který vaše aplikace používá. V obou ukázkách se vyhodnocený cíl předává vašemu routeru; Kixo navigaci aplikace nenahrazuje.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Ověřte iOS
- Odinstalujte aplikaci ze zařízení a potom nainstalujte podepsaný build.
- Otevřete skutečný odkaz Kixo z Poznámek, Zpráv nebo Safari. Nevkládejte ho do adresního řádku Safari jako jediný test.
- Ověřte, že klepnutí při vypnuté aplikaci otevře správnou obrazovku.
- Nechte aplikaci běžet, klepněte na odkaz znovu a ověřte teplé otevření.
- Ověřte, že se otevření odkazu zobrazí v Kixo.
Směrování nechte uvnitř aplikace
Odkaz Kixo může nést cíl, například /products/42. Známé cesty namapujte na vlastní obrazovky a zachovejte stávající kontroly přístupu v aplikaci. Z vyhodnocené hodnoty nedělejte univerzální 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()
}
}Předejte to asistentovi pro psaní kódu
Nahraďte pět zástupných hodnot údaji z Nastavení projektu → Aplikace a nastavení a Deep linky a celý podklad vložte do Codex, Claude Code, Cursor, Windsurf nebo jiného asistenta pro psaní kódu.
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 changeCo asistent nesmí domýšlet
Brandovaný host, název balíčku, otisky podpisu, bundle ID a Apple team ID vycházejí z vaší aplikace a projektu Kixo. Asistent může doplnit implementaci, ale pokud některá hodnota chybí, musí se zastavit a nahlásit to, ne si ji domýšlet.
Kontrolní seznam před releasem
- Přesný host Kixo je uvedený v nastavení pro Android i iOS.
- Android hlásí host jako ověřený pro produkční balíček.
- Otisky produkčního podepisování jsou uložené v Kixo.
- Entitlement pro iOS je součástí podepsaného buildu aplikace.
- Při studeném i teplém otevření se zobrazí očekávaná obrazovka.
- Fallback na web nebo do obchodu funguje i bez nainstalované aplikace.
- Otevření odkazu se zobrazí v analytice Kixo.