Belgelere geç

Derin bağlantılar

Kixo Deep Links, her kullanıcıyı o anda mümkün olan en iyi hedefe yönlendirir. Uygulama yüklüyse aynı markalı HTTPS bağlantısı uygulamada doğru ekranı açar. Aksi halde web siteniz, App Store veya Google Play yedeği açılabilir. Doğrulanmış uygulama açılışını işletim sistemi yönetir; bağlantı tarayıcıya düşerse Kixo, o bağlantı için kayıtlı yedeği uygular.

Kixo’da başlayın

Proje Ayarları → Derin bağlantılar bölümünü açın, bir adres oluşturun ve bu adres için gösterilen kurulumu kopyalayın. Dashboard’daki host, aşağıdaki tüm parçalar için tek doğru kaynaktır.

Bağlantı nasıl açılır

Kullanıcının cihazıSonuç
Uygulama yüklü, app link kurulumu geçerliUygulama doğrudan bağlantı hedefine açılır.
Uygulama yüklü değilKixo, bağlantı için seçilen web sitesi veya mağaza yedeğini kullanır.
Masaüstü tarayıcısıWeb sitesi yedeği açılır.
Uygulama kurulumu eksikBozuk bir uygulama istemi yerine güvenli yedek açılır.

Tam markalı hostu kullanın

Bir Kixo bağlantısının hostu tek bir projeye aittir ve yourbrand.kixo.cc gibi görünür. Geliştirme projelerinde Kixo tarafından yönetilen farklı bir son ek kullanılabilir. Dashboard’daki hostu her zaman eksiksiz kopyalayın.

Joker karakterler çalışmaz

*.kixo.cc veya kixo.cc değil, yourbrand.kixo.cc değerini yapılandırın. Android ve iOS, kullanıcının açtığı hostu birebir doğrular.

Web sitesi ve QR handoff

Web SDK, bir Kixo bağlantısı inişini otomatik olarak tanır. getLinkData() değerini yalnızca web siteniz kendi yönlendiricisinde çözümlenen kampanya bağlamına veya özel parametrelere ihtiyaç duyuyorsa kullanın.

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

Mobil web’de “Open in app” seçeneği sunun

Kixo’nun döndürdüğü tam genel bağlantı URL’sini iletin. Banner yalnızca mobil web’de gösterilir ve Kixo bağlantısının yüklü uygulama, mağaza veya web sitesi hedeflerinden doğru olanı seçmesini sağlar.

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

Masaüstü oturumuna QR kodla devam edin

Sitenizde gösterilen bir QR için URL’yi kendiniz kurmak yerine Kixo’dan mevcut bir bağlantı için handoff oluşturmasını isteyin. Kixo, o bağlantı için kayıtlı uygulama ve web sitesi hedeflerini kullanır.

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

qrCode.render(handoff.url);

Kixo’nun döndürdüğü değerleri kullanın

Kixo’dan bağlantı ID’sini iletin ve dönen URL’yi değiştirmeden gösterin. İsteğe bağlı params, izin verilen uygulama veya web sitesi rotanıza bağlam ekler; bağlantının hedefinin yerini almaz. Kullanıcı ID’si veya cihaz ID’si göndermeyin.

Android App Links

Kodu düzenlemeden önce Android paket adını ve tüm SHA-256 uygulama imzalama parmak izlerini Uygulamalar ve kurulum bölümüne kaydedin. Release sürümünü Google Play imzalıyorsa, Play App Signing parmak izini ve doğrudan ya da dahili derlemelerde kullanılan tüm parmak izlerini de ekleyin.

1. Host'u manifest dosyasına ekleyin

Bu intent filter’ı uygulama içi yönlendirmeyi yöneten activity’ye ekleyin. Yalnızca host yer tutucusunu değiştirin.

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. Sıcak açılışları yönlendirin

Kixo SDK, soğuk başlangıçtaki App Link’i okur. Android mevcut bir activity’yi yeniden kullandığında, sıcak açılışın aynı ilişkilendirme ve yönlendirme yolunu izlemesi için yeni intent’i iletin.

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'i doğrulayın

Manifest’i değiştirdikten sonra uygulamayı yeniden yükleyin. Ardından Android’den hostu doğrulamasını isteyin ve sonucu inceleyin.

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"

İpucu

Tarayıcı seçici genellikle tam host, paket adı veya imzalama parmak izi birebir eşleşmediğinde görünür. Uygulama içi yönlendirme kodunu değiştirmeden önce bu üç değeri kontrol edin.

iOS Universal Links

Uygulamanın bundle ID’sini ve Apple team ID’sini Uygulamalar ve kurulum bölümüne kaydedin. Xcode’da, yüklü derlemenin kullandığı aynı uygulama hedefi ve imzalama yapılandırmasında Associated Domains özelliğini etkinleştirin.

1. İlgili alan adını ekleyin

applinks:YOUR_EXACT_KIXO_HOST

2. Soğuk ve sıcak açılışları yönlendirin

Uygulamanın kullandığı yaşam döngüsünü seçin. Her iki örnekte de çözümlenen hedef kendi yönlendiricinize iletilir; Kixo uygulama içi gezinmenin yerini almaz.

import Kixo

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

3. iOS'i doğrulayın

  1. Uygulamayı cihazdan kaldırın, ardından imzalı derlemeyi yükleyin.
  2. Gerçek bir Kixo bağlantısını Notes, Messages veya Safari içinden açın. Tek test olarak bağlantıyı Safari adres çubuğuna yapıştırmayın.
  3. Soğuk açılışta uygulamanın beklenen ekranda açıldığını doğrulayın.
  4. Uygulamayı açık bırakın, bağlantıya yeniden dokunun ve sıcak açılışı doğrulayın.
  5. Bağlantı açılışının Kixo’da göründüğünü doğrulayın.

Yönlendirmeyi uygulamanın içinde tutun

Bir Kixo bağlantısı /products/42 gibi bir hedef taşıyabilir. Bilinen yolları kendi ekranlarınızla eşleyin ve uygulamanızdaki mevcut erişim kontrollerini koruyun. Çözümlenen değeri genel amaçlı bir URL açıcıya çevirmeyin.

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

Bunu bir kodlama asistanına verin

Beş yer tutucuyu Proje Ayarları → Uygulamalar ve kurulum ve Derin bağlantılar içindeki değerlerle değiştirin, ardından tam metni Codex, Claude Code, Cursor, Windsurf veya başka bir kodlama asistanına yapıştırın.

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

Asistanın tahmin etmemesi gerekenler

Markalı host, paket adı, imzalama parmak izleri, bundle ID ve Apple team ID değerleri uygulamanızdan ve Kixo projenizden gelir. Bir asistan kodu bağlayabilir; ama eksik bir değeri uydurmak yerine durup bunu bildirmelidir.

Release kontrol listesi

  • Tam Kixo hostu, Android ve iOS kurulumunda yer alır.
  • Android, hostun release paketi için doğrulandığını bildirir.
  • Release imzalama parmak izleri Kixo’ya kaydedilmiştir.
  • iOS entitlement, imzalı uygulama derlemesinde bulunur.
  • Soğuk ve sıcak açılışlarda beklenen ekran açılır.
  • Uygulama yüklü değilken web sitesi veya mağaza yedeği çalışır.
  • Bağlantı açılışı Kixo analizlerinde görünür.

İlgili kılavuzlar