iOS SDK
Respondo destek sohbeti için, üçüncü taraf bağımlılığı olmayan yerel bir Swift ve SwiftUI istemcisi.
Gereksinimler#
- iOS 15.0+ (iOS 16+ üzerinde daha ince sayfa yükseklikleri, altında sistem yedeğiyle).
- Swift 5.9+.
- Sıfır üçüncü taraf bağımlılığı — yalnızca Foundation, Swift Concurrency, SwiftUI ve UIKit.
Çapraz platform RespondoCore’u yeniden dışa aktaran RespondoSDK ürününe bağımlısınız.
Kurulum#
Paketi Swift Package Manager ile ekleyin. Xcode’da: File → Add Package Dependencies… ve https://github.com/respondo-app/sdk-ios girin ya da kendi Package.swift’inizde bildirin, ardından RespondoSDK ürününe bağımlı olun.
dependencies: [
.package(url: "https://github.com/respondo-app/sdk-ios", from: "0.1.0")
],
targets: [
.target(
name: "MyApp",
dependencies: [
.product(name: "RespondoSDK", package: "sdk-ios")
]
)
]Ardından kodda içe aktarın:
import RespondoSDKBaşlatma#
Açılışta bir kez başlatın, ardından Respondo.open()’i her yerde çağırın. Yaşam döngüsü yöntemi initialize’dır ( init sözcüğü dilde ayrılmıştır).
import SwiftUI
import RespondoSDK
@main
struct MyApp: App {
init() {
Respondo.initialize(
RespondoConfig(
agentId: "<agent-uuid>",
channelId: "<channel-uuid>"
// baseUrl nil -> https://api.respondo.ai
)
)
}
var body: some Scene {
WindowGroup {
Button("Destek") { Respondo.open() }
}
}
}Respondo cephesi thread-safe’tir. initialize’ın hemen ardından yapılan çağrılar kuyruğa alınır ve asenkron init tamamlandığında uygulanır.
Kullanıcıları tanımlama#
Varsayılan olarak her ziyaretçi anonimdir. İlk açılışta SDK, kararlı bir visitor_id oluşturur ve onu keychain’de tutar; böylece geri dönen bir kullanıcı konuşmasını yeniden bulur. Gömülecek bir API anahtarı yoktur — her konuşma, backend’in ürettiği ve her mesajda ilerlettiği konuşma başına bir oturum belirteciyle korunur; böylece anonim bir ziyaretçinin asla yeniden kimlik doğrulaması gerekmez.
Kullanıcınız oturum açtığında identify’i bir kez çağırın. Bu, gerçek kimliklerini iliştirir; böylece geçmişleri cihazlar ve yeniden kurulumlar arasında onları takip eder ve gelen kutunuzda konuşmanın yanında anonim bir ziyaretçi yerine adları ile e-postaları görünür.
userHash, backend’inizin ajanın identity_secret’ından hesapladığı bir imzadır — HMAC-SHA256(secret, userId) (veya userId yoksa e-posta), küçük harfli hex olarak kodlanır. Bu gizli anahtar, kimliğin gerçek olduğunu kanıtlar; bu yüzden yalnızca backend’inizde bulunmalı ve asla uygulamayla gönderilmemelidir. Tam formül ve sunucu tarafı örnekler için Kimlik doğrulama sayfasına bakın.
// userHash backend'inizden gelir (userId üzerinden HMAC-SHA256) —
// asla uygulamada hesaplamayın.
Respondo.identify(
RespondoIdentity(
userId: session.userId,
email: session.email,
name: session.fullName,
userHash: session.respondoUserHash
)
)
// Çıkışta: oturumu iptal edin ve taze bir anonim ziyaretçi başlatın.
Respondo.reset()Hash eksik veya yanlışsa hiçbir hata fırlatılmaz: backend, ziyaretçiyi sessizce anonim tutar, sohbet çalışmaya devam eder ve geçerli bir hash sağlanana kadar yalnızca cihazlar arası bağlantıyı kaybedersiniz. Doğrulama yalnızca ajanın ayarlanmış bir identity_secret’ı olduğunda çalışır — geliştirme sırasında onu boş bırakın; o zaman userId / e-posta olduğu gibi kabul edilir.
Gözlemlenebilirler & delegate#
Durumu senkron getter’lar, reaktif AsyncStream’ler ya da bir RespondoDelegate aracılığıyla okuyun. Akışlar ve delegate geri çağırmaları main actor üzerinde gelir.
// Okunmamış sayılarının reaktif akışı.
Task {
for await count in Respondo.unreadCountStream {
updateBadge(count)
}
}
// Rozetler ve derin bağlantı yedekleri için delegate.
final class SupportCoordinator: RespondoDelegate {
init() { Respondo.delegate = self }
func respondoUnreadChanged(_ count: Int) {
UIApplication.shared.applicationIconBadgeNumber = count
}
}Ekran takibi#
Proaktif teaser’ların ve sayfa düzeyi hedeflemenin eşleşebilmesi için geçerli ekranı her gezinmede bildirin (static func setCurrentScreen(_ name: String?)). Temizlemek için nil geçirin; her değişimde proaktif teaser yeni ekran için yeniden değerlendirilir.
Respondo.setCurrentScreen("pricing")Sonraki adımlar#
Push bildirimleri’ni ve Kimlik doğrulama’yı bağlayın. UIKit sarmalayıcısı RespondoChatViewController, tam delegate yüzeyi ve sorun giderme, iOS SDK başlangıç kılavuzunda ele alınır; SDK kaynakları GitHub üzerinde herkese açıktır.