如何获取 iOS 设备上的屏幕时间?

问题描述 投票:0回答:2

我们目前正在开发一款 iOS 应用程序,用于跟踪用户在 iOS 设备上的屏幕时间。据我了解,苹果的限制非常严格,当前的屏幕时间 API 可以通过家长设置访问。有什么方法可以获取用户屏幕时间的基本信息吗?甚至像一天的总屏幕时间这样的信息也可以。

ios swift iphone
2个回答
0
投票

我相信 Apple 的 Screen Time API 不提供报告作为其功能之一。 其他问题的回答:链接.

另请参阅有关此内容的 WWDC 视频:链接


0
投票

是的,可以使用 Screen Time API 获取屏幕时间数据,该 API 包含三个框架:

  1. 家长控制
  2. 设备活动
  3. 托管设置

通过这三个框架,您可以检索屏幕时间信息。

要将其集成到 Xcode iOS 项目中,请转到文件 -> 新建 -> 目标 -> 设备活动报告扩展。这会将设备活动报告扩展目标添加到您的项目中,并自动创建三个文件:

  1. ScreenTimeReport.swift
  2. TotalActivityReport.swift
  3. TotalActivityView.swift

要显示用户的总屏幕时间,请将以下代码添加到任何视图文件中。这将提示用户获得许可,并在批准后显示他们的屏幕时间。

struct ExampleView: View {
    @State private var context: DeviceActivityReport.Context = .init(rawValue: "Total Activity")
    @State private var filter = DeviceActivityFilter(
    segment: .daily(
        during: Calendar.current.dateInterval(
           of: .day, for: .now
        )!
    ),
    users: .all,
    devices: .init([.iPhone, .iPad])
)
var body: some View {
    DeviceActivityReport(context, filter: filter)
   }
}

此代码将调用 TotalActivityView.swift 文件。

万岁!将显示屏幕时间。

© www.soinside.com 2019 - 2024. All rights reserved.