- 新增 Android SDK 使用文档,包含模块结构、集成方式和快速开始指南 - 添加 SDK API 重设计规范,统一初始化和登录接口设计 - 补充安全设计规范,完善 UserSig 鉴权和敏感数据处理方案 - 创建平台 REST API 规范,定义服务端到服务端的调用接口 - 添加离线推送架构设计,集成各大厂商推送服务与 IM 联动方案
119 行
3.1 KiB
Markdown
119 行
3.1 KiB
Markdown
# Android SDK 接入指南
|
||
|
||
**版本**:0.2.x(v0.4.0 将引入 UserSig 鉴权)· **最低 Android 版本**:API 24 (Android 7.0) · **语言**:Kotlin
|
||
|
||
> **注意**:v0.4.0 将是 Breaking 版本,`initialize()` 将保持不变,`ImSDK.login()` 将改为 UserSig 鉴权模式。
|
||
|
||
## 功能模块
|
||
|
||
| 模块 | Artifact | 功能 |
|
||
|------|----------|------|
|
||
| sdk-core | `com.xuqm:sdk-core` | 初始化、网络、鉴权(EncryptedSharedPreferences)|
|
||
| sdk-im | `com.xuqm:sdk-im` | 单聊、群聊、消息收发、会话、好友、群组 |
|
||
| sdk-push | `com.xuqm:sdk-push` | 自动检测厂商、设备 Token 注册 |
|
||
| sdk-update | `com.xuqm:sdk-update` | App 更新检查、RN 热更新 |
|
||
|
||
## 快速接入
|
||
|
||
### 1. 添加依赖
|
||
|
||
```kotlin
|
||
// settings.gradle.kts
|
||
dependencyResolutionManagement {
|
||
repositories {
|
||
maven("https://nexus.xuqinmin.com/repository/android/")
|
||
google(); mavenCentral()
|
||
}
|
||
}
|
||
```
|
||
|
||
```kotlin
|
||
// app/build.gradle.kts
|
||
dependencies {
|
||
implementation("com.xuqm:sdk-core:0.2.0")
|
||
implementation("com.xuqm:sdk-im:0.2.0")
|
||
implementation("com.xuqm:sdk-push:0.2.0") // 按需
|
||
implementation("com.xuqm:sdk-update:0.2.0") // 按需
|
||
}
|
||
```
|
||
|
||
### 2. 初始化
|
||
|
||
只需传入 `appKey`,服务器地址由 SDK 内置,**无需传 `serverUrl`**。
|
||
|
||
```kotlin
|
||
// Application.onCreate()
|
||
XuqmSDK.initialize(
|
||
context = this,
|
||
appKey = "your_app_key", // 在租户平台创建应用后获得
|
||
logLevel = LogLevel.WARN, // 可选,DEBUG 开启详细日志
|
||
)
|
||
```
|
||
|
||
### 3. IM 登录与收消息
|
||
|
||
```kotlin
|
||
// 登录(协程 suspend 函数)
|
||
lifecycleScope.launch {
|
||
ImSDK.login(userId = "user_001", nickname = "张三")
|
||
}
|
||
|
||
// 监听实时消息
|
||
ImSDK.addListener(object : ImEventListener {
|
||
override fun onConnected() { /* WebSocket 已连接 */ }
|
||
override fun onMessage(msg: ImMessage) { /* 单聊消息 */ }
|
||
override fun onGroupMessage(msg: ImMessage) { /* 群聊消息 */ }
|
||
override fun onDisconnected(reason: String?) { /* 断线处理 */ }
|
||
})
|
||
```
|
||
|
||
### 4. 发送消息
|
||
|
||
```kotlin
|
||
// 发送文本(通过 WebSocket 实时发送)
|
||
ImSDK.sendMessage(
|
||
toId = "user_002",
|
||
chatType = "SINGLE",
|
||
msgType = "TEXT",
|
||
content = """{"text":"Hello!"}""",
|
||
)
|
||
```
|
||
|
||
### 5. 群组、好友、会话
|
||
|
||
```kotlin
|
||
// 群组
|
||
val groups = ImSDK.listGroups()
|
||
val group = ImSDK.createGroup("项目讨论", listOf("user_002", "user_003"))
|
||
ImSDK.addGroupMember(groupId, "user_004")
|
||
ImSDK.leaveGroup(groupId)
|
||
|
||
// 好友
|
||
val friends = ImSDK.listFriends()
|
||
ImSDK.addFriend("user_002")
|
||
|
||
// 会话
|
||
val conversations = ImSDK.listConversations()
|
||
ImSDK.setConversationPinned(targetId, "SINGLE", true)
|
||
ImSDK.markRead(targetId)
|
||
```
|
||
|
||
### 6. 推送设备注册
|
||
|
||
```kotlin
|
||
// 登录后调用;SDK 自动检测手机厂商(华为/小米/OPPO/vivo/荣耀)
|
||
PushSDK.registerDevice(context, userId = "user_001")
|
||
```
|
||
|
||
### 7. 版本更新
|
||
|
||
```kotlin
|
||
// 检查 App 更新
|
||
val update = UpdateSDK.checkAppUpdate(context)
|
||
if (update?.needsUpdate == true) {
|
||
UpdateSDK.downloadAndInstall(context, update.downloadUrl)
|
||
}
|
||
```
|
||
|
||
[→ 完整 API Reference](./api)
|