Оди на документацијата

Длабоки врски

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.

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” на мобилната веб-верзија

Проследете ја целата јавна URL на link-от што ја враќа Kixo. Банерот се прикажува само на мобилната веб-верзија и му дозволува на Kixo link да го избере одредиштето за инсталираната апликација, продавницата или веб-страницата.

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 за постоечки link наместо сами да составувате URL. Kixo ги користи одредиштата за апликација и веб-страница зачувани за тој link.

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

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 да го потврди host-от и проверете го резултатот.

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"

Совет

Изборник за прелистувач најчесто значи дека точниот 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_HOST

2. Проследете ги 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

  1. Избришете ја апликацијата од уредот, па инсталирајте го потпишаното издание.
  2. Отворете вистински Kixo link од Notes, Messages или Safari. Не го внесувајте во адресната лента на Safari како единствен тест.
  3. Потврдете дека ладен допир ја стартува апликацијата на очекуваниот екран.
  4. Оставете ја апликацијата отворена, допрете го link-от повторно и потврдете топло отворање.
  5. Потврдете дека отворањето на 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 или друг асистент за програмирање.

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

Што асистентот не смее да претпоставува

Брендираниот 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 аналитиката.

Поврзани водичи