Guides
SDK mobiles
Clients iOS, Android, Flutter et React Native conçus à la main.
Quatre SDK Tier 1 conçus à la main qui partagent une forme d'API identique — une fois que vous en avez appris un, vous connaissez les autres. Chacun se trouve danssdks/<platform>/ au sein du monorepo.
iOS — Swift
// Package.swift
.package(url: "https://github.com/singlink/singlink-ios", from: "0.1.0")import AskAIs Customer Service
let client = SingChatClient(baseUrl: URL(string: "https://cs.askais.com")!)
let id = try await client.identify(.init(appId: "ws_abc", email: "ada@example.com"))
try await client.startRealtime { event in
if case .messageNew(let msg) = event { print(msg.content) }
}Android — Kotlin
// build.gradle.kts
implementation("app.singchat:sdk:0.1.0")import app.singchat.sdk.SingChatClient
import app.singchat.sdk.models.IdentifyRequest
val client = SingChatClient("https://cs.askais.com")
client.identify(IdentifyRequest(appId = "ws_abc", email = "ada@example.com"))
client.startRealtime()
client.events.collect { event -> /* ... */ }Flutter — Dart
# pubspec.yaml
dependencies:
singlink_sdk: ^0.1.0import 'package:singlink_sdk/singlink_sdk.dart';
final client = SingChatClient('https://cs.askais.com');
await client.identify(IdentifyRequest(appId: 'ws_abc'));
client.startRealtime();
client.events.listen((e) { /* ... */ });React Native — TypeScript
npm install @singlink/react-nativeimport { useAskAIs Customer Service } from "@singlink/react-native";
const { client, identity, lastEvent } = useAskAIs Customer Service({
baseUrl: "https://cs.askais.com",
identify: { appId: "ws_abc", email: user.email },
});Conception partagée
- Un
SingChatClientpar application (ou un par espace de travail en cas de multi-locataire dans le même binaire) identify()renvoie le JWT, le contact et l'URL WS- Le WebSocket se reconnecte automatiquement avec un backoff exponentiel, ping toutes les 25 s
- Les événements apparaissent sous forme d'enum typé / classe scellée — aucune correspondance de chaîne nécessaire
- Les erreurs sont typées (
SingChatError/SingChatException)
Feuille de route (composants UI mobiles)
Les SDK actuels sont uniquement logiques — apportez votre propre interface de chat. Une vue de chat préconstruite en SwiftUI, Jetpack Compose, widgets Flutter et composants React Native figure sur la feuille de route.