Μετάβαση στην τεκμηρίωση

Σύνδεσμοι εμβάθυνσης

Τα 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.

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

Προσφέρετε “Open in app” στον ιστό για κινητά

Περάστε το πλήρες δημόσιο link URL που επιστρέφει το Kixo. Το banner εμφανίζεται μόνο στον ιστό για κινητά και αφήνει το Kixo link να επιλέξει ανάμεσα στην εγκατεστημένη εφαρμογή, το κατάστημα ή τον προορισμό του ιστότοπου.

js
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.

js
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.

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. Προωθήστε τα warm opens

Το Kixo SDK διαβάζει ένα App Link σε cold start. Όταν το Android επαναχρησιμοποιεί ένα υπάρχον activity, προωθήστε το νέο intent ώστε το warm άνοιγμα να ακολουθεί την ίδια διαδρομή attribution και δρομολόγησης.

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

Αφού αλλάξετε το manifest, επανεγκαταστήστε την εφαρμογή και μετά ζητήστε από το Android να επαληθεύσει το host και ελέγξτε το αποτέλεσμα.

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"

Συμβουλή

Η εμφάνιση επιλογέα 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_HOST

2. Προωθήστε 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

  1. Διαγράψτε την εφαρμογή από τη συσκευή και μετά εγκαταστήστε το υπογεγραμμένο build.
  2. Ανοίξτε ένα πραγματικό Kixo link από τα Notes, τα Messages ή το Safari. Μην αρκεστείτε στο να το επικολλήσετε στη γραμμή διεύθυνσης του Safari ως μοναδικό test.
  3. Επιβεβαιώστε ότι ένα cold tap ανοίγει την εφαρμογή στην αναμενόμενη οθόνη.
  4. Αφήστε την εφαρμογή ανοιχτή, πατήστε ξανά το link και επιβεβαιώστε το warm άνοιγμα.
  5. Επιβεβαιώστε ότι το άνοιγμα του 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 ή σε άλλον βοηθό προγραμματισμού.

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

Τι δεν πρέπει να μαντέψει ο βοηθός

Το 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.

Σχετικοί οδηγοί