32 行
720 B
Swift
32 行
720 B
Swift
|
|
import Foundation
|
||
|
|
|
||
|
|
/// 漏斗追踪器
|
||
|
|
final class FunnelTracker {
|
||
|
|
|
||
|
|
static let shared = FunnelTracker()
|
||
|
|
|
||
|
|
private var sessions: [String: [String]] = [:]
|
||
|
|
private let lock = NSLock()
|
||
|
|
|
||
|
|
private init() {}
|
||
|
|
|
||
|
|
/// 追踪事件
|
||
|
|
func track(name: String, properties: [String: Any?]) {
|
||
|
|
// 简化实现,后续可扩展
|
||
|
|
}
|
||
|
|
|
||
|
|
/// 获取当前会话的事件序列
|
||
|
|
func getSessionEvents(sessionId: String) -> [String] {
|
||
|
|
lock.lock()
|
||
|
|
defer { lock.unlock() }
|
||
|
|
return sessions[sessionId] ?? []
|
||
|
|
}
|
||
|
|
|
||
|
|
/// 清除会话
|
||
|
|
func clearSession(_ sessionId: String) {
|
||
|
|
lock.lock()
|
||
|
|
defer { lock.unlock() }
|
||
|
|
sessions.removeValue(forKey: sessionId)
|
||
|
|
}
|
||
|
|
}
|