- 添加 expiresAt 和 refreshUserSig 参数支持自动续签 - 修改 PushSDK 初始化方式,自动完成设备注册和厂商初始化 - 调整过期续签策略,从提前 15 分钟改为提前 5 分钟触发 - 重构 RN SDK 文档结构,简化安装和使用方式 - 更新统一登录流程,支持 profile 信息传递 - 添加 IM 数据库自动隔离功能 - 修复 Android 群消息聚合问题 - 补充自动化测试验证和错误处理机制
66 行
2.1 KiB
Markdown
66 行
2.1 KiB
Markdown
# XuqmDemo
|
||
|
||
XuqmGroup iOS SDK 的 SwiftUI 演示应用。
|
||
|
||
## 功能
|
||
|
||
- **登录**:使用 demo-service 登录(`user_a` / `123456`)
|
||
- **会话列表**:展示最近会话,支持搜索、置顶、静音、删除
|
||
- **单聊**:与某个用户收发文本消息
|
||
- **更新检查**:检查 App 更新
|
||
- **个人资料**:展示并修改当前用户信息
|
||
|
||
## 环境
|
||
|
||
- 演示服务器:`https://dev.xuqinmin.com`
|
||
- App ID:`ak_demo_chat`
|
||
|
||
## 运行方式
|
||
|
||
### 方式一:嵌入 Xcode 项目
|
||
|
||
1. 将 `XuqmDemo/Sources` 下的所有 Swift 文件拖入你的 Xcode iOS App 项目
|
||
2. 确保项目已依赖 `XuqmSDK`(本地 SPM 或源码引用)
|
||
3. 构建并运行
|
||
|
||
### 方式二:Swift Package Manager(验证编译)
|
||
|
||
```bash
|
||
cd XuqmDemo
|
||
swift build
|
||
```
|
||
|
||
> 注:由于 Demo 是 iOS SwiftUI 应用,建议使用 Xcode 打开 `XuqmGroup-iOSSDK` 仓库,然后新建一个 iOS App Target 并将 `XuqmDemo/Sources` 中的文件加入该 Target 进行真机/模拟器运行。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
XuqmDemo/
|
||
Package.swift
|
||
Sources/
|
||
XuqmDemoApp.swift # @main 入口,初始化 SDK 与路由
|
||
Views/
|
||
LoginView.swift # 登录页
|
||
ConversationListView.swift # 会话列表页
|
||
ChatView.swift # 单聊页
|
||
UpdateCheckView.swift # 更新检查页
|
||
ProfileView.swift # 个人资料页
|
||
ViewModels/
|
||
AuthViewModel.swift # 登录/登出逻辑
|
||
ConversationViewModel.swift# 会话列表逻辑
|
||
ChatViewModel.swift # 聊天逻辑(含 ImEventDelegate 桥接)
|
||
Models/
|
||
DemoModels.swift # 路由、状态、辅助函数
|
||
README.md
|
||
```
|
||
|
||
## 关键 SDK API 使用
|
||
|
||
- `XuqmSDK.shared.initialize(config:)` — 初始化 SDK
|
||
- `ImSDK.shared.loginWithDemo(userId:password:)` — Demo 登录
|
||
- `ImSDK.shared.listConversations()` — 获取会话列表
|
||
- `ImSDK.shared.fetchHistory(toId:page:size:)` — 获取历史消息
|
||
- `ImSDK.shared.sendTextMessage(toId:chatType:content:)` — 发送文本消息
|
||
- `ImSDK.shared.getProfile(userId:)` / `updateProfile(...)` — 用户资料
|
||
- `UpdateSDK.shared.checkAppUpdate(currentVersionCode:)` — 检查更新
|