From b98e47f17a6bedf8e0d699bb2008d9b52f5bbb51 Mon Sep 17 00:00:00 2001 From: Sylvain Bettinelli Date: Fri, 8 May 2026 10:08:13 +0000 Subject: [PATCH] fix : conform CAPBridgedPlugin pour exposer le plugin au JS bridge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Capacitor 8 requiert que les plugins implémentent CAPBridgedPlugin pour déclarer explicitement identifier + jsName + pluginMethods. Sans ça, registerPluginInstance() registre l'instance mais le bridge ne sait pas quelles méthodes exposer → Capacitor.Plugins.CoachWorkoutKit reste undefined côté WebView. Avec ce fix : Capacitor.Plugins.CoachWorkoutKit dispo en JS, avec méthodes isAvailable() et sendInterval() callable. --- ios/App/App/CoachWorkoutKit.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ios/App/App/CoachWorkoutKit.swift b/ios/App/App/CoachWorkoutKit.swift index 2ce56aa..e694f9b 100644 --- a/ios/App/App/CoachWorkoutKit.swift +++ b/ios/App/App/CoachWorkoutKit.swift @@ -29,7 +29,16 @@ import HealthKit #endif @objc(CoachWorkoutKitPlugin) -public class CoachWorkoutKitPlugin: CAPPlugin { +public class CoachWorkoutKitPlugin: CAPPlugin, CAPBridgedPlugin { + // CAPBridgedPlugin : déclaration explicite du contrat plugin pour + // Capacitor 8. Sans ça, registerPluginInstance() expose pas les + // méthodes au JS bridge (Capacitor.Plugins.CoachWorkoutKit reste undefined). + public let identifier = "CoachWorkoutKitPlugin" + public let jsName = "CoachWorkoutKit" + public let pluginMethods: [CAPPluginMethod] = [ + CAPPluginMethod(name: "isAvailable", returnType: CAPPluginReturnPromise), + CAPPluginMethod(name: "sendInterval", returnType: CAPPluginReturnPromise), + ] @objc func isAvailable(_ call: CAPPluginCall) { if #available(iOS 17.0, *) {