feat: 重写 SDK 支持 iOS 12.2,移除 async/await 和 Combine
- 所有公开 API 改为 completion handler (Result<T, Error>) - 状态通知改为 DuooomiBleSDKDelegate 协议 - 移除 Sendable、@MainActor、AsyncStream、CheckedContinuation - 网络请求改为 URLSession.dataTask 回调 - BLE 通信改为 delegate + 闭包模式 - deployment target 降至 iOS 12.2 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
34
Sources/DuooomiBleSDK/DuooomiBleSDKDelegate.swift
Normal file
34
Sources/DuooomiBleSDK/DuooomiBleSDKDelegate.swift
Normal file
@@ -0,0 +1,34 @@
|
||||
import Foundation
|
||||
|
||||
/// SDK 状态变化回调协议,替代 Combine @Published 观察。
|
||||
/// 所有方法在主线程调用。
|
||||
public protocol DuooomiBleSDKDelegate: AnyObject {
|
||||
/// 蓝牙连接状态变化
|
||||
func sdk(_ sdk: DuooomiBleSDK, didChangeState state: ConnectionState)
|
||||
/// 扫描到的设备列表更新
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDevices devices: [DiscoveredDevice])
|
||||
/// 已连接设备变化
|
||||
func sdk(_ sdk: DuooomiBleSDK, didConnectDevice device: DiscoveredDevice?)
|
||||
/// 设备信息更新
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDeviceInfo info: DeviceInfo?)
|
||||
/// 固件版本更新
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateVersion version: String)
|
||||
/// 激活状态变化
|
||||
func sdk(_ sdk: DuooomiBleSDK, didChangeActivation isActivated: Bool)
|
||||
/// 传输进度更新 (0-100)
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateProgress progress: Int)
|
||||
/// 错误发生
|
||||
func sdk(_ sdk: DuooomiBleSDK, didEncounterError error: String?)
|
||||
}
|
||||
|
||||
/// 所有 delegate 方法提供默认空实现,调用方只需实现关心的方法。
|
||||
public extension DuooomiBleSDKDelegate {
|
||||
func sdk(_ sdk: DuooomiBleSDK, didChangeState state: ConnectionState) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDevices devices: [DiscoveredDevice]) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didConnectDevice device: DiscoveredDevice?) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateDeviceInfo info: DeviceInfo?) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateVersion version: String) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didChangeActivation isActivated: Bool) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didUpdateProgress progress: Int) {}
|
||||
func sdk(_ sdk: DuooomiBleSDK, didEncounterError error: String?) {}
|
||||
}
|
||||
Reference in New Issue
Block a user