Глыбокія спасылкі
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() толькі тады, калі вашаму сайту ў сваім маршрутызатары патрэбны вызначаны кантэкст кампаніі або карыстальніцкія параметры.
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 выбраць усталяваную праграму, краму або прызначэнне на сайце.
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 выкарыстае прызначэнні для праграмы і сайта, захаваныя для гэтай спасылкі.
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, якая кіруе навігацыяй праграмы. Замяніце толькі запаўняльнік хоста.
<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, каб цёплае адкрыццё праходзіла тым жа шляхам атрыбуцыі і маршрутызацыі.
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 праверыць хост і паглядзіце вынік.
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_HOST2. Перадайце cold- і warm-спасылкі
Выберыце жыццёвы цыкл, які выкарыстоўвае праграма. У абодвух прыкладах вызначаны пункт прызначэння перадаецца ў ваш маршрутызатар; Kixo не замяняе навігацыю праграмы.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Праверце iOS
- Выдаліце праграму з прылады, а потым усталюйце падпісаную зборку.
- Адкрыйце сапраўдную спасылку Kixo з Notes, Messages або Safari. Не абмяжоўвайцеся толькі тэстам з устаўкай у радок адраса Safari.
- Пераканайцеся, што халодны націск запускае праграму на патрэбным экране.
- Пакіньце праграму адкрытай, яшчэ раз націсніце спасылку і пацвердзіце цёплае адкрыццё.
- Пераканайцеся, што адкрыццё спасылкі з’явілася ў 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 або іншы памочнік для напісання коду.
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.