Длабоки врски
Kixo Deep Links го испраќа секој корисник до најсоодветното достапно одредиште. Ако апликацијата е инсталирана, истиот брендиран HTTPS link го отвора точниот екран во апликацијата. Во спротивно, може да ја отвори вашата веб-страница, App Store или резервната опција на Google Play. Оперативниот систем се грижи за потврдено отворање на апликацијата; кога link-от ќе стигне до прелистувачот, Kixo ја применува резервната опција зачувана за тој link.
Почнете во Kixo
Отворете Поставки на проект → Deep links, создадете адреса и копирајте го поставувањето прикажано за таа адреса. Host-от во аналитичкиот панел е изворната вистина за сите исечоци подолу.
Како се отвора link-от
| Уред на корисникот | Резултат |
|---|---|
| Апликацијата е инсталирана и поставувањето на app link е исправно | Апликацијата се отвора директно на одредиштето на link-от. |
| Апликацијата не е инсталирана | Kixo ја користи резервната веб или store опција избрана за link-от. |
| Десктоп прелистувач | Се отвора резервната веб-страница. |
| Поставувањето на апликацијата не е целосно | Се отвора безбедната резервна опција наместо да се прикаже расипан повик за отворање на апликацијата. |
Користете го точниот брендиран host
Host-от на Kixo link припаѓа на еден проект и изгледа како yourbrand.kixo.cc. Развојните проекти може да користат поинаков завршеток што го управува Kixo. Секогаш копирајте го целиот host од аналитичкиот панел.
Wildcard не работи
Конфигурирајте yourbrand.kixo.cc, не *.kixo.cc и не kixo.cc. Android и iOS го потврдуваат токму host-от што го отвора корисникот.
Веб-страница и QR handoff
Web SDK автоматски препознава слетување од Kixo link. Користете getLinkData() само кога на вашата веб-страница ѝ треба разрешениот контекст на кампањата или сопствени параметри во нејзиниот router.
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” на мобилната веб-верзија
Проследете ја целата јавна URL на link-от што ја враќа Kixo. Банерот се прикажува само на мобилната веб-верзија и му дозволува на Kixo link да го избере одредиштето за инсталираната апликација, продавницата или веб-страницата.
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 за постоечки link наместо сами да составувате URL. Kixo ги користи одредиштата за апликација и веб-страница зачувани за тој link.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Користете ги вредностите што ги враќа Kixo
Проследете го ID-то на link-от од Kixo и прикажете ја вратената URL без измени. Опционалните params додаваат контекст за вашата allowlisted рута во апликацијата или на веб-страницата; не го заменуваат одредиштето на link-от. Не проследувајте user ID или device ID.
Android App Links
Пред да уредувате код, зачувајте ги Android package name и сите SHA-256 signing fingerprint-вредности на апликацијата во Апликации и поставување. Ако release верзијата ја потпишува Google Play, додајте го и Play App Signing fingerprint, како и секој fingerprint што се користи за директни или интерни изданија.
1. Додајте го host во manifest
Ставете го овој intent filter на activity-то што ја управува навигацијата во апликацијата. Заменете го само placeholder-от за 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. Проследете 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 да го потврди host-от и проверете го резултатот.
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"Совет
Изборник за прелистувач најчесто значи дека точниот host, package name или signing fingerprint не се совпаѓа. Проверете ги тие три вредности пред да го менувате кодот за навигација во апликацијата.
iOS Universal Links
Зачувајте ги bundle ID на апликацијата и Apple team ID во Апликации и поставување. Во Xcode, вклучете ја можноста Associated Domains на истиот app target и со истата signing configuration што ја користи инсталираното издание.
1. Додајте го поврзаниот домен
applinks:YOUR_EXACT_KIXO_HOST2. Проследете ги cold и warm врските
Изберете го lifecycle-от што го користи апликацијата. И двата примера го предаваат разрешеното одредиште до вашиот router; Kixo не ја заменува навигацијата во апликацијата.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Потврдете на iOS
- Избришете ја апликацијата од уредот, па инсталирајте го потпишаното издание.
- Отворете вистински Kixo link од Notes, Messages или Safari. Не го внесувајте во адресната лента на Safari како единствен тест.
- Потврдете дека ладен допир ја стартува апликацијата на очекуваниот екран.
- Оставете ја апликацијата отворена, допрете го link-от повторно и потврдете топло отворање.
- Потврдете дека отворањето на link-от се појавува во Kixo.
Задржете го рутирањето во апликацијата
Kixo link може да содржи одредиште како /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()
}
}Дајте му го ова на асистент за програмирање
Заменете ги петте placeholders со вредности од Поставки на проект → Apps & поставување и Длабоки линкови, па вметнете го целиот brief во 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Што асистентот не смее да претпоставува
Брендираниот host, package name, signing fingerprint-вредностите, bundle ID и Apple team ID доаѓаат од вашата апликација и Kixo проект. Асистентот може да го поврзе кодот, но треба да запре и да пријави ако недостига вредност, наместо да измислува.
Проверка пред објава
- Точниот Kixo host е внесен и во Android и во iOS поставувањето.
- Android го пријавува host-от како потврден за release пакетот.
- Release signing fingerprint-вредностите се зачувани во Kixo.
- iOS entitlement е присутен во потпишаното издание на апликацијата.
- Ладните и топлите отворања стигнуваат до очекуваниот екран.
- Резервната веб или store опција работи и кога апликацијата не е инсталирана.
- Отворањето на link-от се појавува во Kixo аналитиката.