- 实现了Android SDK的完整IM功能接口,包括消息、群组、好友、会话等核心功能 - 添加了消息收发、历史记录、撤回编辑等完整的消息操作能力 - 实现了群组管理功能,包括创建、成员管理、权限设置等操作 - 添加了好友关系链管理,支持添加、删除、分组等操作 - 实现了会话管理功能,包括置顶、免打扰、已读状态等 - 添加了黑名单、资料管理、搜索等辅助功能 - 补齐了批量操作接口,提升客户端操作效率 - 实现了WebSocket连接管理和事件监听机制 - 添加了离线消息同步和状态管理功能
94 行
2.1 KiB
Markdown
94 行
2.1 KiB
Markdown
# iOS 版本更新接入指南
|
||
|
||
**模块**:`XuqmUpdate` · **功能**:App 版本检查、App Store 跳转
|
||
|
||
---
|
||
|
||
## 1. 添加依赖
|
||
|
||
在 `Package.swift` 中按需引入:
|
||
|
||
```swift
|
||
.target(
|
||
name: "MyApp",
|
||
dependencies: [
|
||
.product(name: "XuqmUpdate", package: "XuqmGroup-iOSSDK"),
|
||
]
|
||
)
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 检查更新
|
||
|
||
```swift
|
||
import XuqmUpdate
|
||
|
||
let appInfo = try await UpdateSDK.shared.checkAppUpdate(currentVersionCode: 1)
|
||
if let info = appInfo, info.needsUpdate {
|
||
print("发现新版本: \(info.versionName ?? "")")
|
||
print("更新日志: \(info.changeLog ?? "")")
|
||
|
||
if info.forceUpdate == true {
|
||
// 强制更新
|
||
showForceUpdateAlert(info)
|
||
} else {
|
||
// 可选更新
|
||
showOptionalUpdateAlert(info)
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 3. 跳转 App Store
|
||
|
||
```swift
|
||
if let url = appInfo?.appStoreUrl {
|
||
UpdateSDK.shared.openAppStore(url: url)
|
||
}
|
||
```
|
||
|
||
`openAppStore` 会调用 `UIApplication.shared.open()` 打开 App Store 页面,引导用户前往商店更新。
|
||
|
||
---
|
||
|
||
## 4. 强制更新处理
|
||
|
||
当服务端返回 `forceUpdate = true` 时,建议业务层:
|
||
|
||
1. 弹出 `UIAlertController`,设置 `isUserInteractionEnabled = false` 禁止关闭
|
||
2. 只允许用户点击「前往更新」
|
||
3. 调用 `UpdateSDK.shared.openAppStore(url:)` 跳转 App Store
|
||
|
||
```swift
|
||
func showForceUpdateAlert(_ info: AppUpdateInfo) {
|
||
let alert = UIAlertController(
|
||
title: "发现重要更新",
|
||
message: "当前版本已不可用,请升级至 \(info.versionName ?? "最新版")",
|
||
preferredStyle: .alert
|
||
)
|
||
alert.addAction(UIAlertAction(title: "前往更新", style: .default) { _ in
|
||
if let url = info.appStoreUrl ?? info.downloadUrl {
|
||
UpdateSDK.shared.openAppStore(url: url)
|
||
}
|
||
})
|
||
present(alert, animated: true)
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 多模块统一登录
|
||
|
||
Update 模块与 IM、Push 模块共享同一套登录态:
|
||
|
||
```swift
|
||
// 初始化
|
||
XuqmSDK.shared.initialize(config: config)
|
||
|
||
// 登录(业务登录成功后调用一次)
|
||
try await XuqmSDK.shared.login(userId: "user_001", userSig: userSig)
|
||
// UpdateSDK 在 checkAppUpdate 时自动携带 appId,无需额外登录操作
|
||
```
|