Σύνδεσμοι εμβάθυνσης
Τα Kixo Deep Links στέλνουν κάθε χρήστη στον καλύτερο διαθέσιμο προορισμό. Αν η εφαρμογή είναι εγκατεστημένη, το ίδιο branded HTTPS link ανοίγει τη σωστή οθόνη στην εφαρμογή. Διαφορετικά, μπορεί να ανοίξει τον ιστότοπό σας, το App Store ή το fallback του Google Play. Το λειτουργικό σύστημα χειρίζεται το άνοιγμα επαληθευμένης εφαρμογής· όταν το link φτάσει στον browser, το Kixo εφαρμόζει το fallback που έχει αποθηκευτεί για αυτό το link.
Ξεκινήστε από το Kixo
Ανοίξτε το Ρυθμίσεις έργου → Βαθιοί σύνδεσμοι, δημιουργήστε μια διεύθυνση και αντιγράψτε τη ρύθμιση που εμφανίζεται γι’ αυτήν. Το host στο dashboard είναι η τιμή αναφοράς για κάθε snippet παρακάτω.
Πώς ανοίγει ένα link
| Συσκευή του χρήστη | Αποτέλεσμα |
|---|---|
| Η εφαρμογή είναι εγκατεστημένη και το App Links έχει ρυθμιστεί σωστά | Η εφαρμογή ανοίγει απευθείας στον προορισμό του link. |
| Η εφαρμογή δεν είναι εγκατεστημένη | Το Kixo χρησιμοποιεί το fallback ιστότοπου ή καταστήματος που έχει οριστεί για το link. |
| Browser σε υπολογιστή | Ανοίγει το fallback του ιστότοπου. |
| Η ρύθμιση της εφαρμογής δεν έχει ολοκληρωθεί | Ανοίγει το ασφαλές fallback αντί να εμφανιστεί σπασμένη προτροπή ανοίγματος εφαρμογής. |
Χρησιμοποιήστε το ακριβές branded host
Το host ενός Kixo link ανήκει σε ένα project και έχει μορφή όπως yourbrand.kixo.cc. Τα development projects μπορεί να χρησιμοποιούν διαφορετική κατάληξη που διαχειρίζεται το Kixo. Αντιγράφετε πάντα ολόκληρο το host από το dashboard.
Τα wildcards δεν λειτουργούν
Ρυθμίστε το yourbrand.kixo.cc, όχι το *.kixo.cc και όχι το kixo.cc. Android και iOS επαληθεύουν το ακριβές host που ανοίγει ο χρήστης.
Ιστότοπος και QR handoff
Το Web SDK αναγνωρίζει αυτόματα την άφιξη από Kixo link. Χρησιμοποιήστε το getLinkData() μόνο όταν ο ιστότοπός σας χρειάζεται το επιλυμένο context της καμπάνιας ή προσαρμοσμένες παραμέτρους στον δικό του 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);
}Προσφέρετε “Open in app” στον ιστό για κινητά
Περάστε το πλήρες δημόσιο link URL που επιστρέφει το Kixo. Το banner εμφανίζεται μόνο στον ιστό για κινητά και αφήνει το Kixo link να επιλέξει ανάμεσα στην εγκατεστημένη εφαρμογή, το κατάστημα ή τον προορισμό του ιστότοπου.
Kixo.showSmartBanner({
linkId: 'YOUR_KIXO_LINK_ID',
linkUrl: 'https://YOUR_EXACT_KIXO_HOST/link/YOUR_LINK_SLUG',
title: 'Continue in the app',
});Συνέχιση συνεδρίας desktop από QR code
Για QR που εμφανίζεται μέσα στον ιστότοπό σας, ζητήστε από το Kixo να δημιουργήσει handoff για ένα υπάρχον link αντί να φτιάξετε μόνοι σας URL. Το Kixo χρησιμοποιεί τους προορισμούς εφαρμογής και ιστότοπου που είναι αποθηκευμένοι για αυτό το link.
const handoff = await Kixo.createQrHandoff({
linkId: 'YOUR_KIXO_LINK_ID',
params: {
product_id: '42',
},
});
qrCode.render(handoff.url);Χρησιμοποιήστε τις τιμές που επιστρέφει το Kixo
Περάστε το link ID από το Kixo και αποδώστε το URL που επιστρέφεται χωρίς αλλαγές. Τα προαιρετικά params προσθέτουν context στη διαδρομή της εφαρμογής ή του ιστότοπού σας που βρίσκεται σε allowlist· δεν αντικαθιστούν τον προορισμό του link. Μην περνάτε user ID ή device ID.
Android App Links
Πριν επεξεργαστείτε κώδικα, αποθηκεύστε στο Εφαρμογές και ρύθμιση το Android package name και κάθε SHA-256 app signing fingerprint. Αν το release υπογράφεται από το Google Play, προσθέστε και το Play App Signing fingerprint, καθώς και όποιο fingerprint χρησιμοποιείται σε άμεσα ή εσωτερικά builds.
1. Προσθέστε τον host στο manifest
Βάλτε αυτό το intent filter στο activity που χειρίζεται την πλοήγηση της εφαρμογής. Αντικαταστήστε μόνο το placeholder του host.
<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 opens
Το Kixo SDK διαβάζει ένα App Link σε cold start. Όταν το Android επαναχρησιμοποιεί ένα υπάρχον activity, προωθήστε το νέο intent ώστε το warm άνοιγμα να ακολουθεί την ίδια διαδρομή attribution και δρομολόγησης.
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 και ελέγξτε το αποτέλεσμα.
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"Συμβουλή
Η εμφάνιση επιλογέα browser συνήθως σημαίνει ότι δεν ταιριάζει ακριβώς το host, το package name ή το signing fingerprint. Ελέγξτε πρώτα αυτές τις τρεις τιμές πριν αλλάξετε τον κώδικα πλοήγησης της εφαρμογής.
iOS Universal Links
Αποθηκεύστε το bundle ID της εφαρμογής και το Apple team ID στο Εφαρμογές και ρύθμιση. Στο Xcode, ενεργοποιήστε το capability Associated Domains στο ίδιο app target και στην ίδια signing configuration που χρησιμοποιεί το εγκατεστημένο build.
1. Προσθέστε το αντίστοιχο domain
applinks:YOUR_EXACT_KIXO_HOST2. Προωθήστε cold και warm links
Επιλέξτε τον κύκλο ζωής που χρησιμοποιεί η εφαρμογή. Και στα δύο παραδείγματα, ο επιλυμένος προορισμός περνά στον δικό σας router· το Kixo δεν αντικαθιστά την πλοήγηση της εφαρμογής.
import Kixo
WindowGroup {
ContentView()
.onKixoDeepLink { link in
guard link.phase == .resolved else { return }
router.open(link.targetPath ?? link.path)
}
}3. Επαληθεύστε το iOS
- Διαγράψτε την εφαρμογή από τη συσκευή και μετά εγκαταστήστε το υπογεγραμμένο build.
- Ανοίξτε ένα πραγματικό Kixo link από τα Notes, τα Messages ή το Safari. Μην αρκεστείτε στο να το επικολλήσετε στη γραμμή διεύθυνσης του Safari ως μοναδικό test.
- Επιβεβαιώστε ότι ένα cold tap ανοίγει την εφαρμογή στην αναμενόμενη οθόνη.
- Αφήστε την εφαρμογή ανοιχτή, πατήστε ξανά το link και επιβεβαιώστε το warm άνοιγμα.
- Επιβεβαιώστε ότι το άνοιγμα του link εμφανίζεται στο Kixo.
Κρατήστε τη δρομολόγηση μέσα στην εφαρμογή σας
Ένα Kixo link μπορεί να μεταφέρει έναν προορισμό όπως το /products/42. Αντιστοιχίστε τα γνωστά paths στις δικές σας οθόνες και κρατήστε τους υπάρχοντες ελέγχους πρόσβασης της εφαρμογής. Μη μετατρέπετε την επιλυμένη τιμή σε γενικό άνοιγμα 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 με τιμές από τα Ρυθμίσεις έργου → Εφαρμογές & ρύθμιση και Βαθιοί σύνδεσμοι και μετά επικολλήστε ολόκληρο το brief στο Codex, στο Claude Code, στο Cursor, στο Windsurf ή σε άλλον βοηθό προγραμματισμού.
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Τι δεν πρέπει να μαντέψει ο βοηθός
Το branded host, το package name, τα signing fingerprints, το bundle ID και το Apple team ID προέρχονται από την εφαρμογή σας και το project του Kixo. Ένας βοηθός μπορεί να συνδέσει τον κώδικα, αλλά πρέπει να σταματά και να αναφέρει όποια τιμή λείπει, όχι να την επινοεί.
Λίστα ελέγχου έκδοσης
- Το ακριβές Kixo host υπάρχει στη ρύθμιση Android και iOS.
- Το Android αναφέρει το host ως verified για το release package.
- Τα signing fingerprints του release έχουν αποθηκευτεί στο Kixo.
- Το entitlement του iOS υπάρχει στο υπογεγραμμένο build της εφαρμογής.
- Τα cold και warm ανοίγματα καταλήγουν στην αναμενόμενη οθόνη.
- Το fallback ιστότοπου ή καταστήματος λειτουργεί χωρίς εγκατεστημένη εφαρμογή.
- Το άνοιγμα του link εμφανίζεται στα analytics του Kixo.