Терең сілтемелер
Kixo Deep Links әр адамды қолжетімді нұсқалардың ішіндегі ең қолайлы мақсатты мекенжайға жібереді. Қолданба орнатылған болса, сол брендтелген HTTPS сілтемесі қолданбадағы дұрыс экранды ашады. Әйтпесе ол сайтты, App Store-ды немесе Google Play fallback-ын аша алады. Расталған қолданбада ашылуды операциялық жүйе өңдейді; сілтеме браузерге түскенде, Kixo сол сілтеме үшін сақталған fallback-ты қолданады.
Kixo-да бастаңыз
Жоба баптаулары → Терең сілтемелер ашып, мекенжай жасаңыз да, сол мекенжай үшін көрсетілген баптауды көшіріңіз. Төмендегі барлық үзінділер үшін негізгі дереккөз — дашбордтағы хост.
Сілтеме қалай ашылады
| Пайдаланушының құрылғысы | Нәтиже |
|---|---|
| Қолданба орнатылған және app link баптауы дұрыс | Қолданба сілтемедегі мақсатты экранда бірден ашылады. |
| Қолданба орнатылмаған | Kixo сілтеме үшін таңдалған сайт не дүкен fallback-ын қолданады. |
| Жұмыс үстелі браузері | Сайт fallback-ы ашылады. |
| Қолданба баптауы толық емес | Қолданбаға қатысты қате шақырудың орнына қауіпсіз fallback ашылады. |
Нақты брендтелген хостты қолданыңыз
Kixo сілтемесінің хосты бір жобаға тиесілі болады және yourbrand.kixo.cc сияқты көрінеді. Дамыту жобаларында Kixo басқаратын басқа жалғау қолданылуы мүмкін. Хостты әрқашан дашбордтан толық көшіріңіз.
Wildcards жұмыс істемейді
*.kixo.cc емес, kixo.cc емес, yourbrand.kixo.cc параметрін баптаңыз. Android және iOS пайдаланушы ашатын нақты хостты тексереді.
Сайт және QR handoff
Web SDK Kixo сілтемесімен келген ашылуды автоматты түрде таниды. Сайтыңызға өз роутерінде анықталған науқан контексі не custom параметрлер қажет болғанда ғана 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” ұсыныңыз
Kixo қайтарған толық public link URL-ін беріңіз. Баннер тек мобильді вебте көрсетіледі және Kixo сілтемесіне орнатылған қолданбаны, дүкенді немесе сайттағы мақсатты мекенжайды таңдауға мүмкіндік береді.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});QR код арқылы desktop session-ды жалғастыру
Сайтыңыздың ішінде көрсетілетін QR үшін URL-ды өзіңіз құрастырмаңыз, оның орнына Kixo-дан бар сілтеме үшін handoff жасауды сұраңыз. Kixo сол сілтеме үшін сақталған қолданба мен сайттағы мақсатты мекенжайларды пайдаланады.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Kixo қайтарған мәндерді пайдаланыңыз
Kixo-дан link ID мәнін беріп, қайтарылған URL-ды өзгеріссіз көрсетіңіз. Қосымша params allowlist-тегі қолданба не сайт маршрутына контекст қоса алады; олар сілтеменің мақсатты мекенжайын алмастырмайды. Пайдаланушы ID не құрылғы ID жібермеңіз.
Android App Links
Кодты өңдемей тұрып, Android пакет атауын және әрбір SHA-256 қолтаңба бедерін Қолданбалар және баптау ішінде сақтаңыз. Егер релизге Google Play қол қоятын болса, Play App Signing бедерін де, тікелей не ішкі жинақтарда қолданылатын барлық бедерді де қосыңыз.
1. Хостты manifest файлына қосыңыз
Бұл intent filter-ді қолданба навигациясына жауап беретін activity-ге қосыңыз. Тек хостқа арналған placeholder-ді ауыстырыңыз.
<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 cold-start кезіндегі App Link-ті оқиды. Android бар activity-ді қайта пайдаланса, warm ашылу да сол attribution және маршруттау жолымен өтуі үшін жаңа 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-та орнатылған build пайдаланатын сол app target пен signing configuration үшін Байланыстырылған домендер capability параметрін қосыңыз.
1. Байланыстырылған доменді қосыңыз
applinks:YOUR_EXACT_KIXO_HOST2. Cold және warm сілтемелерді өткізіңіз
Қолданба пайдаланатын lifecycle түрін таңдаңыз. Екі мысалда да анықталған мақсатты мекенжай өз роутеріңізге беріледі; 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 мекенжай жолағына қойып қана жасамаңыз.
- Cold ашылу қолданбаны күтілген экранда іске қосатынын растаңыз.
- Қолданбаны ашық күйде қалдырып, сілтемені қайта түртіңіз де, warm ашылуды растаңыз.
- Сілтеме ашылғаны Kixo ішінде көрінетінін растаңыз.
Маршруттауды қолданбаның ішінде қалдырыңыз
Kixo сілтемесі /products/42 сияқты мақсатты мекенжайды қамтуы мүмкін. Белгілі path-тарды өз экрандарыңызға сәйкестендіріңіз және қолданбадағы бар рұқсат тексерулерін сақтаңыз. Анықталған мәнді әмбебап 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()
}
}Мұны код жазу көмекшісіне беріңіз
Бес placeholder-ді Жоба баптаулары → Қолданбалар және баптау және Терең сілтемелер мәндерімен ауыстырыңыз, содан кейін толық 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Көмекші нені болжай алмайды
Брендтелген хост, пакет атауы, қолтаңба бедерлері, bundle ID және Apple team ID сіздің қолданбаңыз бен Kixo жобаңыздан алынады. Көмекші кодты байланыстыра алады, бірақ жетіспейтін мәнді ойдан құрастырмай, тоқтап, соны хабарлауы керек.
Релиз алдындағы тексеру тізімі
- Нақты Kixo хосты Android және iOS баптауларында көрсетілген.
- Android хосттың релиз пакетіне расталғанын көрсетеді.
- Релизге арналған қолтаңба бедерлері Kixo-да сақталған.
- iOS entitlement қол қойылған қолданба жинағында бар.
- Cold және warm ашылулар күтілген экранға өтеді.
- Қолданба орнатылмаса да, сайт не дүкен fallback-ы жұмыс істейді.
- Сілтеме ашылғаны Kixo analytics ішінде көрінеді.