Djuplänkar
Kixo Deep Links skickar varje person till bästa tillgängliga destination. Om appen är installerad öppnar samma brandade HTTPS-länk rätt skärm i appen. Annars kan den öppna er webbplats, App Store eller fallbacken till Google Play. Operativsystemet hanterar verifierade appöppningar; när länken i stället hamnar i webbläsaren använder Kixo fallbacken som är sparad för länken.
Börja i Kixo
Öppna Projektinställningar → Djuplänkar, skapa en adress och kopiera konfigurationen som visas för den. Värdnamnet i dashboarden är källan som gäller för alla kodexempel nedan.
Så öppnas en länk
| Personens enhet | Resultat |
|---|---|
| Appen är installerad och App Links-konfigurationen är giltig | Appen öppnas direkt på länkens destination. |
| Appen är inte installerad | Kixo använder den webbplats- eller butiksfallback som är vald för länken. |
| Webbläsare på dator | Webbplatsens fallback öppnas. |
| Appkonfigurationen är inte klar | Den säkra fallbacken öppnas i stället för en trasig appuppmaning. |
Använd det exakta brandade värdnamnet
Värdnamnet för en Kixo-länk hör till ett projekt och ser ut som yourbrand.kixo.cc. Utvecklingsprojekt kan använda en annan Kixo-hanterad ändelse. Kopiera alltid hela värdnamnet från dashboarden.
Jokertecken fungerar inte
Konfigurera yourbrand.kixo.cc, inte *.kixo.cc och inte kixo.cc. Android och iOS verifierar exakt det värdnamn som personen öppnar.
Webbplats och QR-handoff
Web SDK känner automatiskt igen när någon landar via en Kixo-länk. Använd getLinkData() bara när webbplatsen behöver den uppslagna kampanjkontexten eller egna parametrar i sin router.
const link = Kixo.getLinkData();
if (link?.params.product_id) {
// URL values are user-controlled. Allowlist them before routing.
router.openProduct(link.params.product_id);
}Erbjud ”Öppna i appen” på mobilwebben
Skicka med den fullständiga publika URL som Kixo returnerar. Bannern visas bara på mobilwebben och låter Kixo-länken välja mellan installerad app, butik eller webbplatsdestination.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Fortsätt en datorsession från en QR-kod
För en QR-kod på er webbplats ska du låta Kixo skapa en handoff för en befintlig länk i stället för att bygga en URL själv. Kixo använder app- och webbplatsdestinationerna som är sparade för länken.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Använd värdena som Kixo returnerar
Skicka länk-ID:t från Kixo och återge den URL som returneras utan ändringar. Valfria params lägger till kontext för den tillåtna app- eller webbplatsrutten, men ersätter inte länkens destination. Skicka inte användar-ID eller enhets-ID.
Android App Links
Innan du ändrar kod ska du spara Android-paketnamnet och alla SHA-256-fingeravtryck för appsignering i Appar och konfiguration. Om Google Play signerar releasen lägger du även till fingeravtrycket för Play App Signing, plus alla fingeravtryck som används för direkta eller interna byggen.
1. Lägg till värdnamnet i manifestet
Lägg det här intent-filtret på den aktivitet som hanterar appens navigering. Ersätt bara platshållaren för värdnamnet.
<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. Vidarebefordra varmstarter
Kixo SDK läser en App Link vid kallstart. När Android återanvänder en befintlig aktivitet ska du vidarebefordra dess nya intent så att varmstarten följer samma väg för attribuering och routning.
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. Verifiera Android
Installera om appen efter att du har ändrat manifestet. Be sedan Android verifiera värdnamnet och kontrollera resultatet.
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"Tips
Om en webbläsarväljare visas betyder det oftast att värdnamn, paketnamn eller signeringsfingeravtryck inte matchar exakt. Kontrollera de tre värdena innan du ändrar appens navigeringskod.
iOS Universal Links
Spara appens bundle ID och Apple team ID i Appar och konfiguration. I Xcode aktiverar du sedan funktionen Associated Domains för samma app-target och signeringskonfiguration som används i den installerade versionen.
1. Lägg till den kopplade domänen
applinks:YOUR_EXACT_KIXO_HOST2. Vidarebefordra länkar vid kall- och varmstart
Välj den livscykel som appen använder. I båda exemplen skickas den uppslagna destinationen vidare till er egen router; Kixo ersätter inte appens navigering.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Verifiera iOS
- Ta bort appen från enheten och installera sedan den signerade versionen.
- Öppna en riktig Kixo-länk från Anteckningar, Meddelanden eller Safari. Klistra inte bara in den i Safaris adressfält som enda test.
- Bekräfta att ett tryck från kallstart öppnar appen på rätt skärm.
- Låt appen vara öppen, tryck på länken igen och bekräfta varmstarten.
- Bekräfta att länköppningen syns i Kixo.
Behåll routningen i appen
En Kixo-länk kan innehålla en destination som /products/42. Mappa kända sökvägar till era egna vyer och behåll appens befintliga åtkomstkontroller. Använd inte det uppslagna värdet som en allmän URL-öppnare.
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()
}
}Ge detta till en kodassistent
Ersätt de fem platshållarna med värden från Projektinställningar → Appar och konfiguration och Djuplänkar, och klistra sedan in hela underlaget i Codex, Claude Code, Cursor, Windsurf eller en annan kodassistent.
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 changeDet här får assistenten inte gissa
Det brandade värdnamnet, paketnamnet, signeringsfingeravtrycken, bundle ID och Apple team ID kommer från appen och Kixo-projektet. En assistent kan koppla in koden, men ska stoppa och rapportera ett saknat värde i stället för att hitta på ett.
Checklista inför release
- Det exakta Kixo-värdnamnet finns med i konfigurationen för Android och iOS.
- Android rapporterar att värdnamnet är verifierat för release-paketet.
- Fingeravtrycken för release-signeringen är sparade i Kixo.
- iOS-entitlement finns med i den signerade appversionen.
- Kall- och varmstart öppnar rätt skärm.
- Webbplats- eller butiksfallbacken fungerar utan att appen är installerad.
- Länköppningen syns i Kixo-analysen.