คู่มือ
SDK สำหรับมือถือ
ไคลเอนต์ iOS, Android, Flutter และ React Native ที่สร้างขึ้นด้วยมือ
SDK ระดับ Tier 1 ที่สร้างขึ้นด้วยมือสี่ตัวซึ่งมีรูปแบบ API ที่เหมือนกันทุกประการ — เมื่อคุณ เรียนรู้ตัวหนึ่งแล้ว คุณก็รู้จักตัวอื่น ๆ แต่ละตัวอยู่ที่ sdks/<platform>/ ใน 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 },
});การออกแบบที่ใช้ร่วมกัน
- หนึ่ง
SingChatClientต่อหนึ่งแอป (หรือหนึ่งตัวต่อหนึ่งเวิร์กสเปซหากเป็นแบบหลายผู้เช่าในไบนารีเดียวกัน) identify()จะคืนค่า JWT, ผู้ติดต่อ และ WS URL- WebSocket จะเชื่อมต่อใหม่โดยอัตโนมัติด้วย exponential backoff โดย ping ทุก 25 s
- เหตุการณ์ปรากฏเป็น enum ที่มีชนิด / sealed class — ไม่ต้องจับคู่สตริง
- ข้อผิดพลาดมีการกำหนดชนิด (
SingChatError/SingChatException)
โรดแมป (คอมโพเนนต์ UI สำหรับมือถือ)
SDK ปัจจุบันมีเฉพาะลอจิก — นำ UI แชทของคุณมาเอง มุมมองแชทสำเร็จรูปใน SwiftUI, Jetpack Compose, วิดเจ็ต Flutter และคอมโพเนนต์ React Native อยู่ในโรดแมป