SDK seluler
SDK seluler adalah padanan widget web untuk aplikasi Anda sendiri: pelanggan Anda mendapatkan dukungan dalam aplikasi dengan riwayat percakapan lengkap dan notifikasi push, dan agen Anda melihat percakapan tersebut di Kotak masuk yang sama. SDK ini bukan aplikasi agen untuk tim Anda; aplikasi agen adalah lini produk terpisah.
Platform
Section titled “Platform”| Platform | Bahasa dan runtime | Distribusi | Status |
|---|---|---|---|
| iOS | Swift 5.9+, iOS 15+ | Swift Package Manager, CocoaPods | dalam pengembangan |
| Android | Kotlin 1.9+, Android 8.0 (API 26)+ | Maven Central | dalam pengembangan |
| React Native | membungkus SDK native | npm | direncanakan (beta) |
| Flutter | membungkus SDK native | pub.dev | direncanakan (beta) |
SDK native adalah acuan utama; wrapper dirilis setelahnya. Aplikasi jam tangan atau TV dan SDK desktop berada di luar cakupan; gunakan widget web untuk desktop.
Isi SDK
Section titled “Isi SDK”Pesan teks, lampiran, pesan suara, gambar dan video, sesi anonim dan teridentifikasi, tema, avatar dan branding kustom, 40 bahasa, concierge AI, riwayat percakapan, lencana belum dibaca, notifikasi push, deep link, klik-untuk-menelepon melalui aplikasi telepon, antrean offline dengan sinkronisasi latar belakang, buka kunci biometrik untuk chat, dukungan VoiceOver dan TalkBack, mode gelap. Target ukuran hasil kompilasi: 5 MB atau kurang per platform.
Panggilan WebRTC dalam aplikasi dan berbagi layar dari pelanggan hadir di rilis berikutnya. Cobrowse hanya untuk web: sistem operasi seluler tidak mengizinkan SDK pihak ketiga mengamati atau mengendalikan layar.
Antarmuka SDK
Section titled “Antarmuka SDK”Inisialisasi sekali, di awal siklus hidup aplikasi:
// iOSlet config = RolChatConfig( siteId: "site_abc123", apiKey: "pk_live_…", // public key - safe to ship in the app region: .eu, // eu / us theme: RolChatTheme(primaryColor: .blue))RolChat.shared.initialize(config: config)// Androidval config = RolChatConfig.Builder() .siteId("site_abc123") .apiKey("pk_live_…") .region(Region.EU) .theme(RolChatTheme(primaryColor = Color.Blue)) .build()RolChat.initialize(context, config)Identifikasi pengguna setelah mereka login, dan logout saat mereka keluar:
RolChat.shared.identify(userId: "user_12345", email: "alice@example.com", name: "Alice", metadata: ["tier": "gold"])RolChat.shared.logout() // on host-app sign-out, or the next user sees this historyTampilkan UI:
RolChat.shared.openChat() // modalRolChat.shared.openChat(conversationId: id) // a specific conversationRolChat.shared.openChatInline(view) // inside your own layoutRolChat.shared.close()Callback: rolChatDidOpen, rolChatDidClose, rolChatDidReceiveMessage(_:), rolChatDidFailToSend(_:). API publik aman dipanggil dari main thread di iOS dan dari background thread di Android; koneksi terputus saat aplikasi masuk ke latar belakang dan tersambung kembali saat kembali ke latar depan.
Sesi dan identitas
Section titled “Sesi dan identitas”- Anonim: ID sesi perangkat yang disimpan di keychain atau preferensi terenkripsi tetap ada setelah pembaruan aplikasi dan terikat pada perangkat, bukan pengguna. ID ini dihapus setelah 90 hari tidak aktif.
- Teridentifikasi: setelah
identify, sesi dinaikkan tingkatnya dan digabungkan dengan riwayat anonim di perangkat yang sama jika tidak ambigu. Resolusi identitas lintas saluran mengikuti aturan grafik identitas dan persetujuan. - Identifikasi tepercaya: backend Anda menandatangani token berisi claim pengguna; SDK meneruskannya dan RolChat memverifikasi tanda tangan sebelum menaikkan tingkat sesi.
identifytanpa tanda tangan tetap berfungsi, tetapi tingkat kepercayaannya lebih rendah.
Kunci API publik di aplikasi aman secara desain: kunci ini dibatasi ke situs dan dikenai batas laju.
Notifikasi push
Section titled “Notifikasi push”| Platform | Transport | Yang Anda sediakan |
|---|---|---|
| iOS | APNs | Kunci autentikasi APNs di dasbor RolChat |
| Android | FCM | JSON service account FCM |
RolChat.shared.setPushToken(deviceToken, type: .apns)if RolChat.shared.handleNotification(userInfo) { return } // consumed: a chat messageTeks notifikasi dilokalkan di sisi server ke bahasa pengguna. Notifikasi kaya mendukung avatar, balas dari notifikasi, dan tandai sebagai dibaca. SDK tidak pernah meminta izin push dengan sendirinya; panggil requestPushPermission() saat sesuai dengan alur onboarding Anda. Menonaktifkan dilakukan dengan setPushEnabled(false) atau pengaturan OS; keduanya dicatat.
Versi dan dukungan
Section titled “Versi dan dukungan”Semantic versioning yang ketat. Dua versi mayor didukung bersamaan, dengan waktu satu tahun untuk migrasi setelah rilis mayor. Rilis minor setiap bulan; perbaikan keamanan dirilis segera; rilis mayor diumumkan tiga bulan sebelumnya. SDK yang dihentikan atau tidak didukung mencatat peringatan saat dijalankan dan dasbor menampilkannya di Integrasi.
Privasi
Section titled “Privasi”Tidak ada pelacakan di luar yang Anda aktifkan, tampilan persetujuan menggunakan pola native platform, dan permintaan subjek data GDPR, CCPA, dan LGPD mencakup sesi SDK seperti saluran lainnya. Lampiran dikompresi di perangkat, diunggah ke URL bertanda tangan, dan dipindai virus sebelum dilihat agen.