Prejsť na dokumentáciu

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ľaVýsledok
Aplikácia je nainštalovaná a App Links sú nastavené správneApliká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.

js
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.

js
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.

js
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.

xml
<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.

kotlin
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.

bash
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_HOST

2. 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

  1. Odstráňte aplikáciu zo zariadenia a potom nainštalujte podpísaný build.
  2. Otvorte skutočný odkaz Kixo cez Notes, Messages alebo Safari. Nevkladajte ho do adresného riadka Safari ako jediný test.
  3. Overte, že klepnutie pri studenom spustení otvorí aplikáciu na očakávanej obrazovke.
  4. Nechajte aplikáciu spustenú, znova klepnite na odkaz a overte teplé otvorenie.
  5. 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.

text
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.

Súvisiace návody