iOS SDK
Respondo सपोर्ट चॅटसाठी Swift आणि SwiftUI वरचा नेटिव्ह क्लायंट — एकही तृतीय-पक्ष डिपेंडन्सी नाही.
आवश्यकता#
- iOS 15.0+ (iOS 16+ वर शीटचे अधिक बारीक detent, त्याखालच्या आवृत्त्यांवर सिस्टीमचा फॉलबॅक).
- Swift 5.9+.
- एकही तृतीय-पक्ष डिपेंडन्सी नाही — फक्त Foundation, Swift Concurrency, SwiftUI आणि UIKit.
तुम्ही RespondoSDK प्रॉडक्टवर अवलंबून राहता, जे क्रॉस-प्लॅटफॉर्म RespondoCore पुन्हा एक्सपोर्ट करते.
इन्स्टॉलेशन#
Swift Package Manager ने पॅकेज जोडा. Xcode मध्ये: File → Add Package Dependencies… आणि https://github.com/respondo-app/sdk-ios टाका, किंवा स्वतःच्या Package.swift मध्ये ते जाहीर करा, आणि मग RespondoSDK प्रॉडक्टवर अवलंबित्व द्या.
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")
]
)
]मग कोडमध्ये ते import करा:
import RespondoSDKइनिशियलाइझ करणे#
लाँचच्या वेळी एकदाच इनिशियलाइझ करा, नंतर कुठूनही Respondo.open() कॉल करा. लाइफसायकल मेथड initialize आहे (init हा शब्द भाषेने राखीव ठेवला आहे).
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("Support") { Respondo.open() }
}
}
}Respondo फसाड थ्रेड-सेफ आहे. initialize नंतर लगेच केलेले कॉल रांगेत ठेवले जातात आणि async init पूर्ण होताच लागू केले जातात.
वापरकर्त्यांची ओळख#
डीफॉल्टनुसार प्रत्येक अभ्यागत अनामिक असतो. पहिल्या लाँचला SDK स्थिर visitor_id तयार करते आणि तो keychain मध्ये ठेवते, त्यामुळे परत येणाऱ्या वापरकर्त्याला त्याचे संभाषण पुन्हा सापडते. ॲपमध्ये कोणतीही API की ठेवावी लागत नाही — प्रत्येक संभाषण त्या संभाषणापुरत्या सेशन टोकनने संरक्षित असते; बॅकएंड ते टोकन तयार करतो आणि प्रत्येक मेसेजला पुढे सरकवतो, त्यामुळे अनामिक अभ्यागताला कधीही पुन्हा प्रमाणीकरण करावे लागत नाही.
तुमचा वापरकर्ता साइन इन झाल्यावर identify कॉल करा. यामुळे त्याची खरी ओळख जोडली जाते, त्याचा इतिहास वेगवेगळ्या डिव्हाइसवर आणि पुन्हा इन्स्टॉल केल्यावरही त्याच्यासोबत राहतो, आणि तुमच्या इनबॉक्समध्ये संभाषणाशेजारी अनामिक अभ्यागताऐवजी त्याचे नाव आणि email दिसतात.
userHash ही स्वाक्षरी तुमचा बॅकएंड एजंटच्या identity_secret वरून काढतो — HMAC-SHA256(secret, userId) (किंवा userId नसेल तेव्हा email वरून), लोअरकेस hex मध्ये एन्कोड केलेली. ही सीक्रेट ओळख खरी असल्याचे सिद्ध करते, म्हणून ती फक्त तुमच्या बॅकएंडवरच राहिली पाहिजे आणि ॲपसोबत कधीही पाठवली जात नाही. संपूर्ण सूत्र आणि सर्व्हरवरची उदाहरणे ओळख पडताळणी पानावर पाहा.
// userHash तुमच्या बॅकएंडकडून येतो (userId वर HMAC-SHA256) —
// तो ॲपमध्ये कधीही काढू नका.
Respondo.identify(
RespondoIdentity(
userId: session.userId,
email: session.email,
name: session.fullName,
userHash: session.respondoUserHash
)
)
// लॉगआउटवर: सेशन रद्द करा आणि नवा अनामिक अभ्यागत सुरू करा.
Respondo.reset()हॅश नसेल किंवा चुकीचा असेल, तर काहीही एरर देत नाही: बॅकएंड गुपचूप अभ्यागताला अनामिक ठेवतो, चॅट चालूच राहते आणि वैध हॅश मिळेपर्यंत तुम्ही फक्त क्रॉस-डिव्हाइस दुवा गमावता. एजंटला identity_secret दिलेला असेल तेव्हाच पडताळणी चालते — डेव्हलपमेंटदरम्यान तो रिकामा ठेवा, म्हणजे userId / email जसेच्या तसे स्वीकारले जातात.
ऑब्झर्व्हेबल आणि डेलिगेट#
स्थिती सिंक्रोनस गेटरने वाचा, रिॲक्टिव्ह AsyncStream ने वाचा, किंवा RespondoDelegate द्वारे वाचा. स्ट्रीम आणि डेलिगेट कॉलबॅक main actor वर येतात.
// न वाचलेल्यांच्या संख्येचा रिॲक्टिव्ह स्ट्रीम.
Task {
for await count in Respondo.unreadCountStream {
updateBadge(count)
}
}
// बॅज आणि डीप-लिंक फॉलबॅकसाठी डेलिगेट.
final class SupportCoordinator: RespondoDelegate {
init() { Respondo.delegate = self }
func respondoUnreadChanged(_ count: Int) {
UIApplication.shared.applicationIconBadgeNumber = count
}
}स्क्रीन ट्रॅकिंग#
प्रत्येक नेव्हिगेशनला सध्याची स्क्रीन कळवा, म्हणजे प्रोॲक्टिव्ह टीझर आणि पान-पातळीवरचे टार्गेटिंग तिच्याशी जुळवता येते (static func setCurrentScreen(_ name: String?)). साफ करण्यासाठी nil पाठवा; प्रत्येक बदलावर नव्या स्क्रीनसाठी प्रोॲक्टिव्ह टीझरचे पुनर्मूल्यांकन होते.
Respondo.setCurrentScreen("pricing")पुढील पायऱ्या#
पुश नोटिफिकेशन आणि ओळख पडताळणी जोडा. UIKit रॅपर RespondoChatViewController, संपूर्ण डेलिगेट आणि अडचणी सोडवण्याचे मार्गदर्शन iOS SDK च्या सुरुवातीच्या गाइडमध्ये आहे; SDK चे सोर्स GitHub वर खुले आहेत.