在您的 Spezi 应用中访问健康数据。
Spezi HealthKit 模块使应用能够与 Apple 的 HealthKit 系统集成,获取数据,设置长期后台数据收集,并可视化与健康相关的数据。
您需要在 Xcode 中将 Spezi HealthKit Swift 包添加到 您的应用 或 Swift 包。
重要提示
如果您的应用程序尚未配置为使用 Spezi,请按照Spezi 设置文章设置核心 Spezi 基础设施。
在配置 HealthKit
模块之前,请确保您的 Spezi 应用程序中的 Standard
符合 HealthKitConstraint
协议以接收 HealthKit 数据。对于每个新收集的 HealthKit 样本,将调用 HealthKitConstraint/add(sample:)
函数,而对于每个删除的 HealthKit 样本,将调用 HealthKitConstraint/remove(sample:)
函数。
actor ExampleStandard: Standard, HealthKitConstraint {
// Add the newly collected HKSample to your application.
func add(sample: HKSample) async {
// ...
}
// Remove the deleted HKSample from your application.
func remove(sample: HKDeletedObject) {
// ...
}
}
然后,您可以在 SpeziAppDelegate
的配置部分配置 HealthKit
模块。 例如,您可以使用 CollectSample
来收集各种 HealthKit 数据类型
class ExampleAppDelegate: SpeziAppDelegate {
override var configuration: Configuration {
Configuration(standard: ExampleStandard()) {
HealthKit {
CollectSample(.activeEnergyBurned)
CollectSample(.stepCount, start: .manual)
CollectSample(.pushCount, start: .manual)
CollectSample(.heartRate, continueInBackground: true)
CollectSample(.electrocardiogram, start: .manual)
RequestReadAccess(quantity: [.bloodOxygen])
}
}
}
}
提示
请参阅 SampleType
以获取支持的样本类型的完整列表。
您可以使用 SpeziHealthKitUI
的 HealthKitQuery
和 HealthKitStatisticsQuery
属性包装器来访问视图中的健康数据库
struct ExampleView: View {
@HealthKitQuery(.heartRate, timeRange: .today)
private var heartRateSamples
var body: some View {
ForEach(heartRateSamples) { sample in
// ...
}
}
}
此外,您可以使用 SpeziHealthKitUI
的 HealthChart
来可视化查询结果
struct ExampleView: View {
@HealthKitQuery(.heartRate, timeRange: .today)
private var heartRateSamples
var body: some View {
HealthChart {
HealthChartEntry($heartRateSamples, drawingConfig: .init(mode: .line, color: .red))
}
}
}
有关更多信息,请参阅 API 文档。
Spezi 模板应用程序 提供了一个很好的起点和示例,使用了 SpeziHealthKit
模块。
欢迎对此项目做出贡献。请务必首先阅读 贡献指南 和 贡献者盟约行为准则。
本项目根据 MIT 许可证获得许可。 有关更多信息,请参阅 许可证。