Przejdź do dokumentacji

Linki głębokie

Kixo Deep Links kierują każdą osobę do najlepszego dostępnego miejsca docelowego. Jeśli aplikacja jest zainstalowana, ten sam firmowy link HTTPS otworzy właściwy ekran w aplikacji. W przeciwnym razie może otworzyć Twoją stronę, App Store albo Google Play. Zweryfikowane otwarcie aplikacji obsługuje system operacyjny; gdy link trafi do przeglądarki, Kixo zastosuje fallback zapisany dla tego linku.

Zacznij w Kixo

Otwórz Ustawienia projektu → Linki bezpośrednie, utwórz adres i skopiuj konfigurację wyświetloną dla tego adresu. Host z dashboardu jest źródłem prawdy dla wszystkich poniższych fragmentów.

Jak otwiera się link

Urządzenie użytkownikaWynik
Aplikacja jest zainstalowana, a konfiguracja App Links jest poprawnaAplikacja otwiera się od razu we właściwym miejscu docelowym linku.
Aplikacja nie jest zainstalowanaKixo użyje fallbacku strony lub sklepu wybranego dla tego linku.
Przeglądarka na komputerzeOtwiera się fallback strony.
Konfiguracja aplikacji jest niepełnaZamiast uszkodzonego komunikatu o otwarciu aplikacji otwiera się bezpieczny fallback.

Użyj dokładnego firmowego hosta

Host linku Kixo jest przypisany do jednego projektu i wygląda jak yourbrand.kixo.cc. Projekty deweloperskie mogą używać innej końcówki zarządzanej przez Kixo. Zawsze kopiuj pełny host z dashboardu.

Wildcardy nie działają

Skonfiguruj yourbrand.kixo.cc, a nie *.kixo.cc ani kixo.cc. Android i iOS weryfikują dokładnie ten host, który otwiera użytkownik.

Przekazanie między stroną a kodem QR

Web SDK automatycznie rozpoznaje wejście z linku Kixo. Użyj getLinkData() tylko wtedy, gdy Twoja strona potrzebuje rozpoznanego kontekstu kampanii albo własnych parametrów we własnym routerze.

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

Pokaż „Otwórz w aplikacji” w mobilnej wersji strony

Przekaż pełny publiczny URL linku zwrócony przez Kixo. Baner wyświetla się tylko w mobilnej wersji strony i pozwala linkowi Kixo wybrać zainstalowaną aplikację, sklep albo docelową stronę.

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

Kontynuuj sesję na komputerze za pomocą kodu QR

Jeśli kod QR wyświetlasz w swojej witrynie, poproś Kixo o utworzenie przekazania dla istniejącego linku zamiast samodzielnie składać URL. Kixo użyje docelowego adresu aplikacji i strony zapisanego dla tego linku.

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

qrCode.render(handoff.url);

Użyj wartości zwróconych przez Kixo

Przekaż ID linku z Kixo i wyrenderuj zwrócony URL bez zmian. Opcjonalne params dodają kontekst do ścieżki aplikacji lub strony z listy dozwolonych, ale nie zastępują adresu docelowego linku. Nie przekazuj ID użytkownika ani ID urządzenia.

Android App Links

Zanim zaczniesz edytować kod, zapisz nazwę pakietu Android i każdy odcisk podpisu aplikacji SHA-256 w Aplikacje i konfiguracja. Jeśli wersję produkcyjną podpisuje Google Play, dodaj zarówno odcisk Play App Signing, jak i każdy odcisk używany w buildach bezpośrednich lub wewnętrznych.

1. Dodaj host do manifestu

Dodaj ten intent filter do aktywności, która odpowiada za nawigację w aplikacji. Podmień tylko placeholder hosta.

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. Przekaż ciepłe otwarcia

SDK Kixo odczytuje App Link przy zimnym starcie. Gdy Android ponownie używa istniejącej aktywności, przekaż do niej nowy intent, aby ciepłe otwarcie przechodziło tą samą ścieżką atrybucji i routingu.

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. Zweryfikuj Android

Po zmianie manifestu zainstaluj aplikację ponownie, a następnie zleć Android weryfikację hosta i sprawdź wynik.

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"

Wskazówka

Okno wyboru przeglądarki zwykle oznacza, że nie zgadza się dokładny host, nazwa pakietu albo odcisk podpisu. Zanim zaczniesz zmieniać kod nawigacji w aplikacji, sprawdź te trzy wartości.

iOS Universal Links

Zapisz bundle ID aplikacji i Apple team ID w Aplikacje i konfiguracja. W Xcode włącz capability Powiązane domeny dla tego samego targetu aplikacji i tej samej konfiguracji podpisywania, której używa zainstalowany build.

1. Dodaj powiązaną domenę

applinks:YOUR_EXACT_KIXO_HOST

2. Przekaż linki przy zimnym i ciepłym otwarciu

Wybierz sposób obsługi cyklu życia używany w aplikacji. W obu przykładach rozpoznany adres docelowy trafia do Twojego routera; Kixo nie zastępuje nawigacji w aplikacji.

import Kixo

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

3. Zweryfikuj iOS

  1. Usuń aplikację z urządzenia, a potem zainstaluj podpisany build.
  2. Otwórz prawdziwy link Kixo z Notes, Messages albo Safari. Nie ograniczaj testu wyłącznie do wklejenia go w pasek adresu Safari.
  3. Potwierdź, że zimne otwarcie uruchamia aplikację na właściwym ekranie.
  4. Pozostaw aplikację uruchomioną, stuknij link ponownie i potwierdź ciepłe otwarcie.
  5. Potwierdź, że otwarcie linku pojawia się w Kixo.

Pozostaw routing po stronie aplikacji

Link Kixo może zawierać adres docelowy, np. /products/42. Mapuj znane ścieżki na własne ekrany i zachowaj dotychczasowe mechanizmy kontroli dostępu w aplikacji. Nie używaj rozpoznanej wartości jako uniwersalnego otwieracza 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()
    }
}

Przekaż to asystentowi programowania

Zastąp pięć placeholderów wartościami z Ustawienia projektu → Aplikacje i konfiguracja i Linki bezpośrednie, a następnie wklej cały brief do Codex, Claude Code, Cursor, Windsurf albo innego asystenta programowania.

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

Czego asystent nie może zgadywać

Firmowy host, nazwa pakietu, odciski podpisu, bundle ID i Apple team ID pochodzą z Twojej aplikacji i projektu Kixo. Asystent może podłączyć kod, ale powinien zatrzymać się i zgłosić brakującą wartość, zamiast ją wymyślać.

Lista kontrolna przed wydaniem

  • Dokładny host Kixo jest wpisany w konfiguracji Android i iOS.
  • Android zgłasza host jako zweryfikowany dla pakietu wydaniowego.
  • Odciski podpisu wersji produkcyjnej są zapisane w Kixo.
  • Uprawnienie iOS jest obecne w podpisanym buildzie aplikacji.
  • Zimne i ciepłe otwarcie prowadzi do właściwego ekranu.
  • Fallback strony lub sklepu działa bez zainstalowanej aplikacji.
  • Otwarcie linku pojawia się w analityce Kixo.

Powiązane przewodniki