fix CoachWorkoutKit : retire preview() (API absente du SDK), garde schedule()
L'API WorkoutScheduler.shared.preview(plan) n'existe pas (ou pas avec cette signature) dans le SDK iOS de l'utilisateur — compile error 'Value of type WorkoutScheduler has no...'. On garde uniquement WorkoutScheduler.shared.schedule(plan, at: now), qui est l'API stable depuis iOS 17.0. Effet : le workout devient immédiatement disponible dans Apple Watch → Exercice → Workouts personnalisés. Le 1er schedule déclenche automatiquement la dialog d'autorisation iOS 'Coach Hypnotruck souhaite ajouter des workouts à votre Apple Watch' si pas encore accordée. Plus besoin du authorizationState query manuel. Trade-off : pas de sheet de prévisualisation système avant ajout (l'user ne voit pas la structure dans une UI native avant que le workout soit ajouté). Mais c'est le bon compromis pour avoir un build qui marche. On pourra réintroduire preview() plus tard si on bump le deployment target.
This commit is contained in:
@@ -140,17 +140,10 @@ public class CoachWorkoutKitPlugin: CAPPlugin {
|
|||||||
// 7. Plan
|
// 7. Plan
|
||||||
let plan = WorkoutPlan(.custom(custom))
|
let plan = WorkoutPlan(.custom(custom))
|
||||||
|
|
||||||
// 8. Request authorization si pas déjà accordée
|
// 8. Schedule pour "maintenant" — l'API la plus stable iOS 17.0+.
|
||||||
let authState = await WorkoutScheduler.shared.authorizationState
|
// Le workout devient immédiatement disponible dans Apple Watch →
|
||||||
if authState != .authorized {
|
// Exercice → Workouts personnalisés. Le 1er schedule déclenche la
|
||||||
_ = try await WorkoutScheduler.shared.requestAuthorization()
|
// demande d'autorisation native si besoin.
|
||||||
}
|
|
||||||
|
|
||||||
// 9. Présenter la sheet système (iOS 17.4+) ou scheduler direct (17.0-17.3)
|
|
||||||
if #available(iOS 17.4, *) {
|
|
||||||
try await WorkoutScheduler.shared.preview(plan)
|
|
||||||
} else {
|
|
||||||
// Fallback : schedule "now" pour rendre dispo sur Watch
|
|
||||||
let now = Calendar.current.dateComponents(
|
let now = Calendar.current.dateComponents(
|
||||||
[.year, .month, .day, .hour, .minute],
|
[.year, .month, .day, .hour, .minute],
|
||||||
from: Date()
|
from: Date()
|
||||||
@@ -158,4 +151,3 @@ public class CoachWorkoutKitPlugin: CAPPlugin {
|
|||||||
_ = try await WorkoutScheduler.shared.schedule(plan, at: now)
|
_ = try await WorkoutScheduler.shared.schedule(plan, at: now)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user