You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI如何统计并展示用户打开应用的累计次数

实现App启动次数统计功能解决方案

实现逻辑

  • 用UserDefaults持久化存储启动计数,App卸载前数据不会丢失,SwiftUI可直接用@AppStorage属性包装器简化读写操作
  • 监听App启动/进入活跃状态的事件,每次触发时更新计数并同步存储
  • 视图层直接绑定存储的计数值,自动更新展示内容

完整可运行代码

1. App主入口逻辑(处理计数累加)

如果切前台再切回也算一次启动,用以下代码:

@main
struct YourAppName: App {
    // launchCount为存储的key值,全局唯一即可,初始值可根据需求调整
    @AppStorage("launchCount") private var launchCount = 0
    @Environment(\.scenePhase) private var scenePhase
    
    var body: some Scene {
        WindowGroup {
            LaunchCountView()
        }
        .onChange(of: scenePhase) { newPhase in
            // App进入前台活跃状态时计数+1
            if newPhase == .active {
                launchCount += 1
            }
        }
    }
}

如果仅冷启动(完全杀掉进程后重新打开)才算一次启动,用简化版本:

@main
struct YourAppName: App {
    @AppStorage("launchCount") private var launchCount = 0
    
    init() {
        // App初始化时计数+1,仅冷启动会触发
        launchCount += 1
    }
    
    var body: some Scene {
        WindowGroup {
            LaunchCountView()
        }
    }
}

2. 视图层代码(展示计数)

// 遵循Swift命名规范,视图名首字母大写
struct LaunchCountView: View {
    // 和入口处用同一个key读取存储的计数值,自动响应数据更新
    @AppStorage("launchCount") private var launchCount = 0
    
    var body: some View {
        VStack {
            HStack {
                Image(systemName: "eye")
                    .resizable()
                    .scaledToFit()
                    .frame(width: 50, height: 50)
                // 直接绑定计数值展示
                Text("\(launchCount)")
                    .font(.system(size: 25))
                    .fontWeight(.bold)
                    .foregroundColor(Color.black)
                    .padding(.leading)
            }
        }
        .frame(width: 250, height: 150)
        .background(Color.gray.opacity(0.5))
        .cornerRadius(10)
    }
}

需求适配说明

你要求首次打开展示0,打开两次展示2,只需要调整初始值即可:把@AppStorage("launchCount") private var launchCount = 0里的初始值改成-1,第一次启动加1后就是0,第三次启动加1后就是2,完全匹配你的展示需求。

内容的提问来源于stack exchange,提问作者user16253979

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:18:00