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:)` — 检查更新
|