## 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 下的热门文章实现与服务端排行方案,参数与流程可复现验证。


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部