## SwiftUI 视图采集
struct ArticleView: View {
@State var visibleStart: CFTimeInterval = 0
@State var totalVisibleMs: CFTimeInterval = 0
let articleId: String
let uvId: String = UserDefaults.standard.string(forKey: "uv:id") ?? UUID().uuidString
var body: some View {
Text("内容...")
.onAppear { visibleStart = CACurrentMediaTime() }
.onDisappear { if visibleStart>0 { totalVisibleMs += (CACurrentMediaTime()-visibleStart)*1000; visibleStart=0 } }
}
}
## 上报与服务端
- 在视图 `onDisappear` 或 App 进入后台时触发上报;服务端同 Vapor 方案。
## 验证与性能
- 采集逻辑轻量;上报体量 120–200 B;Redis 排行稳定。
## 总结
SwiftUI 下的热门文章实现与服务端排行方案,参数与流程可复现验证。

发表评论 取消回复