Мне нужно открыть расширение для часов из моего родительского приложения для iOS. Я видел похожую функцию в приложении Nike+ Run Club. т. е. когда пользователь нажимает кнопку «Пуск» в родительском приложении, мгновенно открывается расширение комплекта часов.
Как открыть приложение для часов из родительского приложения iOS?
comment
это делается с помощью метода startWatchApp(with:completion:) HKHealthStore. Приложение для iOS настраивает тренировку, отправляет ее на часы, а часы могут ее запускать или нет, но это можно сделать только тогда, когда приложение iOS находится на переднем плане. developer.apple.com/reference/healthkit/hkhealthstore/
- person abjurato   schedule 27.03.2017
Ответы (1)
Как сказал @abjurato, вы можете запустить его только в «режиме тренировки».
import HealthKit
import WatchConnectivity
let healthStore = HKHealthStore()
func startWatchApp() {
print("method called to open app ")
getActiveWCSession { (wcSession) in
print(wcSession.isComplicationEnabled, wcSession.isPaired)
if wcSession.activationState == .activated && wcSession.isWatchAppInstalled {
print("starting watch app")
self.healthStore.startWatchApp(with: self.configuration, completion: { (success, error) in
// Handle errors
})
}
else{
print("watch not active or not installed")
}
}
}
func getActiveWCSession(completion: @escaping (WCSession)->Void) {
guard WCSession.isSupported() else { return }
let wcSession = WCSession.default()
wcSession.delegate = self
if wcSession.activationState == .activated {
completion(wcSession)
} else {
wcSession.activate()
wcSessionActivationCompletion = completion
}
}
person
pawisoon
schedule
01.06.2017
К сожалению, это не разбудит часы. Как только часы выходят из спящего режима, приложение для часов сразу же становится активным, в этом смысле документация вводит в заблуждение.
- person Joe Maher; 23.04.2018