Ir á documentación

Ligazóns profundas

Kixo Deep Links leva cada persoa ao mellor destino dispoñible. Se a app está instalada, a mesma ligazón HTTPS coa túa marca abre a pantalla correcta dentro da app. Se non, pode abrir o teu sitio web ou usar App Store ou Google Play como fallback. O sistema operativo encárgase da apertura verificada da app; cando a ligazón chega ao navegador, Kixo aplica o fallback gardado para esa ligazón.

Comeza en Kixo

Abre Configuración do proxecto → Ligazóns profundas, crea un enderezo e copia a configuración que aparece para ese enderezo. O host do dashboard é a referencia válida para todos os fragmentos que veñen a continuación.

Como se abre unha ligazón

Dispositivo da persoaResultado
App instalada e configuración do app link válidaA app abre directamente no destino da ligazón.
App non instaladaKixo usa o fallback de sitio web ou de tenda definido para a ligazón.
Navegador de escritorioÁbrese o fallback do sitio web.
Configuración da app incompletaÁbrese o fallback seguro en vez de mostrar un aviso roto para abrir a app.

Usa o host exacto coa túa marca

O host dunha ligazón de Kixo pertence a un único proxecto e ten un formato como yourbrand.kixo.cc. Os proxectos de desenvolvemento poden usar outra terminación xestionada por Kixo. Copia sempre o host completo desde o dashboard.

Os comodíns non funcionan

Configura yourbrand.kixo.cc, non *.kixo.cc nin kixo.cc. Android e iOS verifican o host exacto que abre a persoa.

Transferencia entre web e QR

O Web SDK recoñece automaticamente cando unha visita chega desde unha ligazón de Kixo. Usa getLinkData() só se o teu sitio web necesita no seu propio router o contexto de campaña resolto ou parámetros personalizados.

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

Ofrece “Abrir na app” na web móbil

Pasa a URL pública completa devolta por Kixo. O banner só se mostra na web móbil e deixa que a ligazón de Kixo elixa entre a app instalada, a tenda ou o sitio web.

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

Continúa unha sesión de escritorio desde un código QR

Se mostras un QR dentro do teu sitio web, pídelle a Kixo que cree unha transferencia a partir dunha ligazón existente en vez de construír ti a URL. Kixo usa os destinos de app e de sitio web gardados para esa ligazón.

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

qrCode.render(handoff.url);

Usa os valores devoltos por Kixo

Pasa o ID da ligazón de Kixo e amosa a URL devolta sen cambiala. Os params opcionais engaden contexto para unha ruta da túa app ou do teu sitio web incluída na allowlist; non substitúen o destino da ligazón. Non pases un ID de usuario nin un ID de dispositivo.

Android App Links

Antes de editar código, garda en Apps e configuración o nome do paquete de Android e todas as pegadas SHA-256 de sinatura da app. Se Google Play asina a versión de release, engade tamén a pegada de Play App Signing, ademais de calquera pegada usada en compilacións directas ou internas.

1. Engade o host ao manifesto

Pon este intent filter na activity que controla a navegación da app. Substitúe unicamente o marcador de posición do 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. Reenvía as aperturas en quente

O SDK de Kixo le o App Link nun arranque en frío. Cando Android reutiliza unha activity xa existente, reenvía o novo intent para que a apertura en quente siga o mesmo fluxo de atribución e enrutamento.

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

Despois de cambiar o manifest, reinstala a app e pídelle a Android que verifique o host; logo revisa o resultado.

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"

Consello

Se aparece un selector de navegador, normalmente é porque non coincide o host exacto, o nome do paquete ou a pegada de sinatura. Revisa eses tres valores antes de tocar o código de navegación da app.

iOS Universal Links

Garda en Apps e configuración o bundle ID da app e o Apple team ID. En Xcode, activa a capability Associated Domains no mesmo target da app e coa mesma configuración de sinatura que usa a compilación instalada.

1. Engade o dominio asociado

applinks:YOUR_EXACT_KIXO_HOST

2. Reenvía as ligazóns en frío e en quente

Escolle o ciclo de vida que usa a app. Nos dous exemplos, o destino resolto entrégase ao teu propio router; Kixo non substitúe a navegación da app.

import Kixo

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

3. Verifica iOS

  1. Elimina a app do dispositivo e instala despois a compilación asinada.
  2. Abre unha ligazón real de Kixo desde Notes, Messages ou Safari. Non a pegues na barra de enderezos de Safari como única proba.
  3. Confirma que unha apertura en frío leva á app á pantalla esperada.
  4. Deixa a app aberta, toca a ligazón outra vez e confirma a apertura en quente.
  5. Confirma que a apertura da ligazón aparece en Kixo.

Mantén o enrutamento dentro da app

Unha ligazón de Kixo pode levar un destino como /products/42. Asocia as rutas coñecidas ás túas propias pantallas e conserva os controis de acceso que xa ten a app. Non converta o valor resolto nun abridor de URL de propósito xeral.

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

Dálle isto a un asistente de código

Substitúe os cinco marcadores de posición polos valores de Configuración do proxecto → Aplicacións e configuración e Ligazóns profundas, e pega a instrución completa en Codex, Claude Code, Cursor, Windsurf ou noutro asistente de código.

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

O que o asistente non debe adiviñar

O host coa túa marca, o nome do paquete, as pegadas de sinatura, o bundle ID e o Apple team ID saen da túa app e do teu proxecto de Kixo. Un asistente pode conectar o código, pero debe parar e indicar que falta un valor en vez de inventalo.

Lista de comprobación de release

  • O host exacto de Kixo está presente na configuración de Android e iOS.
  • Android indica que o host está verificado para o paquete de release.
  • As pegadas de sinatura de release están gardadas en Kixo.
  • O entitlement de iOS está presente na compilación asinada da app.
  • As aperturas en frío e en quente chegan á pantalla esperada.
  • O fallback de sitio web ou de tenda funciona aínda que a app non estea instalada.
  • A apertura da ligazón aparece na analítica de Kixo.

Guías relacionadas