Перайсці да дакументацыі

Глыбокія спасылкі

Kixo Deep Links адпраўляюць кожнага чалавека ў найлепшы даступны пункт прызначэння. Калі праграма ўсталявана, тая ж фірмовая HTTPS-спасылка адкрые патрэбны экран у праграме. Інакш яна можа адкрыць ваш сайт, App Store або запасны варыянт Google Play. Праверанае адкрыццё праграмы апрацоўвае аперацыйная сістэма; калі спасылка трапляе ў браўзер, Kixo прымяняе запасны варыянт, захаваны для гэтай спасылкі.

Пачніце ў Kixo

Адкрыйце Налады праекта → Глыбокія спасылкі, стварыце адрас і скапіруйце наладку, паказаную для гэтага адраса. Хост у аналітычнай панэлі — крыніца ісціны для ўсіх фрагментаў ніжэй.

Як адкрываецца спасылка

Прылада чалавекаВынік
Праграма ўсталявана, і наладка app link карэктнаяПраграма адкрываецца адразу ў пункце прызначэння спасылкі.
Праграма не ўсталяванаKixo выкарыстоўвае для спасылкі выбраны запасны варыянт сайта або крамы.
Браўзер на камп’ютарыАдкрываецца запасны варыянт сайта.
Наладка праграмы няпоўнаяЗамест зламанага запыту на адкрыццё праграмы адкрываецца бяспечны запасны варыянт.

Выкарыстоўвайце дакладны фірмовы хост

Хост спасылкі Kixo належыць аднаму праекту і выглядае як yourbrand.kixo.cc. У праектах распрацоўкі можа выкарыстоўвацца іншае заканчэнне пад кіраваннем Kixo. Заўсёды капіюйце поўны хост з аналітычнай панэлі.

Падстаноўкі не працуюць

Наладжвайце yourbrand.kixo.cc, а не *.kixo.cc і не kixo.cc. Android і iOS правяраюць дакладны хост, які адкрывае карыстальнік.

Сайт і QR handoff

Web SDK аўтаматычна распазнае пераход па спасылцы Kixo. Выкарыстоўвайце getLinkData() толькі тады, калі вашаму сайту ў сваім маршрутызатары патрэбны вызначаны кантэкст кампаніі або карыстальніцкія параметры.

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);
}

Прапануйце “Open in app” у мабільнай версіі сайта

Перадайце поўны public link URL, які вярнуў Kixo. Банер паказваецца толькі ў мабільнай версіі сайта і дазваляе спасылцы Kixo выбраць усталяваную праграму, краму або прызначэнне на сайце.

js
Kixo.showSmartBanner({
  linkId: 'YOUR_KIXO_LINK_ID',
  linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
  title: 'Continue in the app',
});

Працягнуць сеанс на камп’ютары з QR-кода

Для QR унутры вашага сайта папрасіце Kixo стварыць handoff для ўжо існай спасылкі, а не збірайце URL самастойна. Kixo выкарыстае прызначэнні для праграмы і сайта, захаваныя для гэтай спасылкі.

js
const handoff = await Kixo.createQrHandoff({
  linkId: 'YOUR_KIXO_LINK_ID',
  params: {
    product_id: '42',
  },
});

qrCode.render(handoff.url);

Выкарыстоўвайце значэнні, якія вяртае Kixo

Перадайце ID спасылкі з Kixo і выводзьце атрыманы URL без змен. Неабавязковыя params дадаюць кантэкст для дазволенага маршруту праграмы або сайта, але не замяняюць прызначэнне спасылкі. Не перадавайце ID карыстальніка або ID прылады.

Android App Links

Перад тым як рэдагаваць код, захавайце Android package name і ўсе SHA-256 адбіткі подпісу праграмы ў Праграмы і наладка. Калі рэліз падпісвае Google Play, дадайце таксама адбітак Play App Signing і ўсе адбіткі, якія выкарыстоўваюцца для прамых або ўнутраных зборак.

1. Дадайце хост у manifest

Дадайце гэты intent filter у activity, якая кіруе навігацыяй праграмы. Замяніце толькі запаўняльнік хоста.

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. Перадайце warm-адкрыцці

Kixo SDK счытвае App Link пры халодным запуску. Калі Android паўторна выкарыстоўвае існуючую activity, перадайце ў яе новы intent, каб цёплае адкрыццё праходзіла тым жа шляхам атрыбуцыі і маршрутызацыі.

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. Праверце Android

Пасля змены manifest пераўсталюйце праграму, затым папрасіце Android праверыць хост і паглядзіце вынік.

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"

Парада

Выбар браўзера звычайна азначае, што не супадае дакладны хост, назва пакета або адбітак подпісу. Перад зменамі ў кодзе навігацыі праграмы праверце ўсе тры значэнні.

iOS Universal Links

Захавайце bundle ID праграмы і Apple team ID у Праграмы і наладка. У Xcode уключыце магчымасць Associated Domains для таго ж app target і той жа канфігурацыі подпісу, што выкарыстоўваюцца ва ўсталяванай зборцы.

1. Дадайце звязаны дамен

applinks:YOUR_EXACT_KIXO_HOST

2. Перадайце cold- і warm-спасылкі

Выберыце жыццёвы цыкл, які выкарыстоўвае праграма. У абодвух прыкладах вызначаны пункт прызначэння перадаецца ў ваш маршрутызатар; Kixo не замяняе навігацыю праграмы.

import Kixo

WindowGroup {
    ContentView()
        .onKixoDeepLink { link in
            guard link.phase == .resolved else { return }
            router.open(link.targetPath ?? link.path)
        }
}

3. Праверце iOS

  1. Выдаліце праграму з прылады, а потым усталюйце падпісаную зборку.
  2. Адкрыйце сапраўдную спасылку Kixo з Notes, Messages або Safari. Не абмяжоўвайцеся толькі тэстам з устаўкай у радок адраса Safari.
  3. Пераканайцеся, што халодны націск запускае праграму на патрэбным экране.
  4. Пакіньце праграму адкрытай, яшчэ раз націсніце спасылку і пацвердзіце цёплае адкрыццё.
  5. Пераканайцеся, што адкрыццё спасылкі з’явілася ў Kixo.

Пакідайце маршрутызацыю ўнутры праграмы

Спасылка Kixo можа ўтрымліваць пункт прызначэння, напрыклад /products/42. Супастаўляйце вядомыя шляхі са сваімі экранамі і захоўвайце існыя праверкі доступу ў праграме. Не ператварайце атрыманае значэнне ва ўніверсальны 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()
    }
}

Перадайце гэта памочніку для напісання коду

Замяніце пяць запаўняльнікаў значэннямі з Налады праекта → Праграмы і наладка і Глыбокія спасылкі, а потым устаўце поўны брыф у Codex, Claude Code, Cursor, Windsurf або іншы памочнік для напісання коду.

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

Што памочнік не павінен адгадваць

Фірмовы хост, package name, адбіткі подпісу, bundle ID і Apple team ID бяруцца з вашай праграмы і праекта Kixo. Памочнік можа падключыць код, але павінен спыніцца і паведаміць пра адсутнае значэнне, а не прыдумляць яго.

Праверачны спіс перад рэлізам

  • Дакладны хост Kixo прысутнічае ў наладах Android і iOS.
  • Android паказвае, што хост правераны для рэлізнага пакета.
  • Адбіткі подпісу рэлізнай зборкі захаваны ў Kixo.
  • У падпісанай зборцы праграмы ёсць entitlement для iOS.
  • Халоднае і цёплае адкрыццё прыводзяць на патрэбны экран.
  • Запасны варыянт сайта або крамы працуе без усталяванай праграмы.
  • Адкрыццё спасылкі з’яўляецца ў аналітыцы Kixo.

Звязаныя кіраўніцтвы