Я использую CMPedomer для сбора данных о шагах.
if CMPedometer.isStepCountingAvailable() {
print("Step counting is available...")
let startDate = Calendar.current.date(bySettingHour: 0, minute: 0, second: 0, of: Date())
let endDate = Date()
CMPedometer().queryPedometerData(from: beforeDate!, to: Date()) { [weak self] (data, error) in
print("Handler (data):")
guard let activityData = data, error == nil else {
print("There was an error getting the data: \(error!)")
return
}
todayStepCount = Int(truncating: activityData.numberOfSteps )
todayDistanceCount = Double(truncating: activityData.distance ?? 0.0)
todayFloorCount = Int(truncating: activityData.floorsAscended ?? 0)
print(activityData)
}
}
эта функция отлично работает из основного приложения. Из виджета не работает.
Отлаживаю виджет. этот запросPedometerData вызывается, но не вводит эту функцию и ничего не печатает.
CMPedometer().queryPedometerData(from: beforeDate!, to: Date()) { [weak self] (data, error) in
Подробнее здесь: https://stackoverflow.com/questions/662 ... rom-widget