如何在iOS应用程序中显示HealthKit数据?
我正在摆弄HealthKit,我只想制作一个非常简单的应用程序,读取HealthKit消耗的活动热量,并将其打印到ViewController上。我不确定我是否在HealthManager类中正确访问数据,也不确定如何正确调用healthKit数据以在我的viewController中打印 我知道我必须创建一个类来验证用户是否允许应用程序访问healthKit数据。首先,我创建了一个名为HealthManager的类来解决我的第一个验证问题,我确信它可以正常工作:如何在iOS应用程序中显示HealthKit数据?,ios,swift,healthkit,Ios,Swift,Healthkit,我正在摆弄HealthKit,我只想制作一个非常简单的应用程序,读取HealthKit消耗的活动热量,并将其打印到ViewController上。我不确定我是否在HealthManager类中正确访问数据,也不确定如何正确调用healthKit数据以在我的viewController中打印 我知道我必须创建一个类来验证用户是否允许应用程序访问healthKit数据。首先,我创建了一个名为HealthManager的类来解决我的第一个验证问题,我确信它可以正常工作: class HealthMan
class HealthManager {
let storage = HKHealthStore()
init()
{
checkAuthorization()
}
func checkAuthorization() -> Bool {
var isEnabled = true
if HKHealthStore.isHealthDataAvailable() {
// Explicitly requests calorie data
let calories = NSSet(object: HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned)!)
// Requests authorization for calorie data
storage.requestAuthorizationToShareTypes(nil, readTypes: calories as? Set<HKObjectType>) { (success, error) -> Void in
isEnabled = success
}
}
else {
isEnabled = false
}
return isEnabled
}
}
class-HealthManager{
let storage=HKHealthStore()
init()
{
检查授权()
}
func checkAuthorization()->Bool{
var isEnabled=true
如果HKHealthStore.isHealthDataAvailable()可用{
//明确请求卡路里数据
让卡路里=NSSet(对象:HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiviteEnergyBurned)!)
//请求对卡路里数据的授权
storage.requestAuthorizationToShareTypes(nil,readTypes:carries as?Set){(success,error)->Void in
成功
}
}
否则{
isEnabled=false
}
返回被禁止
}
}
但我不知道下一步该怎么办。我在哪里以及如何阅读当前课程中消耗的活动卡路里?我将在哪里以字符串形式返回值,如何将所有这些信息传递到我的viewController中
感谢您的帮助 您可以使用健康工具包访问以下信息。 -出生日期 -血型 -生物制品 -体重 -高度 -修井类型 我认为最好创建新的独立的“HelathKitHelper”单例类,并在此类中编写所有逻辑 通过它,您可以使用不同的-2控制器类调用相同的代码 一些教程链接
希望这对你有帮助 我们在为个人数据中间件Pryv构建的HealthKit桥接器中实现了类似的功能。 我们已经在一个示例应用程序中对其进行了测试,该应用程序允许用户授权其他应用程序向Apple HealthKit读取/写入数据并显示数据。 您可以在此处找到代码:。
我们用于个人数据收集和同意管理的中间件是开源的,所以请随意使用它,以及我们的示例应用程序:谢谢,我一定会尝试!我将如何在viewController中调用上述singleton类以将其打印到屏幕上?您可以为数据创建模型类,并在模型类中存储所有必需的健康相关信息。您可以创建一些方法,如-(ModelClass*)getData;并从视图控制器调用此方法。