XuqmGroup-iOSSDK/Sources/XuqmSDK/Update/UpdateSDK.swift
XuqmGroup 5eb46f97c6 feat(im): 添加即时通讯SDK核心功能
- 实现IM API接口定义,包括消息、群组、好友、黑名单等功能
- 定义IM消息相关数据模型,包含聊天类型、消息类型、用户资料等
- 实现ImSDK单例类,提供登录、消息发送、群组管理、好友管理等核心功能
- 添加WebSocket连接管理,支持自动重连机制
- 实现历史消息查询、群组操作、用户资料管理等API调用
- 添加会话状态管理,支持置顶、静音、草稿等功能
- 集成文件上传结果,支持多媒体消息发送
- 实现连接状态监听和事件回调机制
2026-04-28 21:05:06 +08:00

45 行
1.2 KiB
Swift

import Foundation
#if canImport(UIKit)
import UIKit
#elseif canImport(AppKit)
import AppKit
#endif
public struct AppUpdateInfo: Decodable, Sendable {
public let needsUpdate: Bool
public let versionName: String?
public let versionCode: Int?
public let changeLog: String?
public let forceUpdate: Bool?
public let appStoreUrl: String?
}
@MainActor
public final class UpdateSDK {
public static let shared = UpdateSDK()
private init() {}
public func checkAppUpdate(currentVersionCode: Int) async throws -> AppUpdateInfo {
let config = XuqmSDK.shared.requireConfig()
return try await ApiClient.shared.request(
path: "/api/v1/updates/app/check",
queryItems: [
URLQueryItem(name: "appId", value: config.appId),
URLQueryItem(name: "platform", value: "IOS"),
URLQueryItem(name: "currentVersionCode", value: "\(currentVersionCode)"),
]
)
}
public func openAppStore(url: String) {
guard let storeURL = URL(string: url) else { return }
#if canImport(UIKit)
UIApplication.shared.open(storeURL)
#elseif canImport(AppKit)
NSWorkspace.shared.open(storeURL)
#endif
}
}