Ios 当应用程序处于后台时,如何查询HealthKit(香港健身)更新?
编辑以添加我的更新代码,该代码基于WWDC 2016的“从Healthkit talk中获得最大收益”,但除非我打开应用程序,否则我仍然无法获得新训练的打印声明 在苹果手表上保存了新的训练后,我正在iPhone上观察新的训练。下面是我正在运行的代码Ios 当应用程序处于后台时,如何查询HealthKit(香港健身)更新?,ios,swift,background-process,appdelegate,healthkit,Ios,Swift,Background Process,Appdelegate,Healthkit,编辑以添加我的更新代码,该代码基于WWDC 2016的“从Healthkit talk中获得最大收益”,但除非我打开应用程序,否则我仍然无法获得新训练的打印声明 在苹果手表上保存了新的训练后,我正在iPhone上观察新的训练。下面是我正在运行的代码didfishLaunching。为了测试它,我在iPhone应用程序上运行Xcode…构建并运行,然后导航回主屏幕。然后在我的手表上开始并保存训练,但是我的打印语句没有在控制台中打印。我错过了什么 func startObservingNewWork
didfishLaunching
。为了测试它,我在iPhone应用程序上运行Xcode…构建并运行,然后导航回主屏幕。然后在我的手表上开始并保存训练,但是我的打印语句没有在控制台中打印。我错过了什么
func startObservingNewWorkouts() {
let sampleType = HKObjectType.workoutType()
//1. Enable background delivery for workouts
self.healthStore.enableBackgroundDelivery(for: sampleType, frequency: .immediate) { (success, error) in
if let unwrappedError = error {
print("could not enable background delivery: \(unwrappedError)")
}
if success {
print("background delivery enabled")
}
}
//2. open observer query
let query = HKObserverQuery(sampleType: sampleType, predicate: nil) { (query, completionHandler, error) in
self.updateWorkouts() {
completionHandler()
}
}
healthStore.execute(query)
}
func updateWorkouts(completionHandler: @escaping () -> Void) {
var anchor: HKQueryAnchor?
let sampleType = HKObjectType.workoutType()
let anchoredQuery = HKAnchoredObjectQuery(type: sampleType, predicate: nil, anchor: anchor, limit: HKObjectQueryNoLimit) { [unowned self] query, newSamples, deletedSamples, newAnchor, error in
self.handleNewWorkouts(new: newSamples!, deleted: deletedSamples!)
anchor = newAnchor
completionHandler()
}
healthStore.execute(anchoredQuery)
}
func handleNewWorkouts(new: [HKSample], deleted: [HKDeletedObject]) {
print("new sample added = \(new.last.startTime!)")
}
结果表明,即使设备被锁定,该代码也能正常工作吗?我想在应用程序处于后台或设备被锁定时,只要有更改,就将健康套件数据中的更新发送到我的服务器。这可能吗?是的,即使设备被锁定,它也会处理。但这只有在功能中添加后台模式时才会起作用,对吗?这将只获取180秒的数据。如果我错了,请纠正我。那个么,当应用程序在后台时,我怎样才能持续监控健康数据呢?只需使用打印语句进行测试,Xcode在手机锁定时仍会运行您的打印语句@加里萨博,那个懒散的人还在吗?我想要一个更新的邀请链接--做记号