Files
coach-ios/ios/App/App/MainViewController.swift
Sylvain Bettinelli 94f5beebcb fix(ios): bande blanche bounce — force scrollView.backgroundColor noir
Cause définitive identifiée après plusieurs tentatives CSS/JS vaines :
WKWebView a un scrollView.backgroundColor blanc par défaut, exposé
lors du bounce iOS quand on pulle au sommet ou pousse en bas. Aucune
propriété CSS (overscroll-behavior, background body/html) ne peut le
changer car c'est une couche native UIKit AU-DESSUS du DOM.

Fix : override viewDidLoad() de MainViewController pour set :
- view.backgroundColor = .black
- webView.isOpaque = false
- webView.backgroundColor = .black
- webView.scrollView.backgroundColor = .black

Rebuild Xcode + push sur l'iPhone requis pour appliquer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 12:32:50 +00:00

32 lines
1.4 KiB
Swift

// MainViewController.swift
// Sous-classe de CAPBridgeViewController pour enregistrer manuellement les
// plugins Capacitor in-app (i.e. plugins définis directement dans le target
// App, pas en npm package). Capacitor 8 n'auto-découvre pas ces plugins,
// faut les registrer ici dans capacitorDidLoad().
import UIKit
import Capacitor
class MainViewController: CAPBridgeViewController {
override func capacitorDidLoad() {
// Plugin natif WorkoutKit pousse des workouts intervalles vers
// l'Apple Watch (cf. CoachWorkoutKit.swift).
bridge?.registerPluginInstance(CoachWorkoutKitPlugin())
// Plugin natif route GPS HealthKit récupère la trace des workouts
// Apple Watch (HKWorkoutRouteQuery, cf. CoachHealthRoute.swift).
bridge?.registerPluginInstance(CoachHealthRoutePlugin())
}
override func viewDidLoad() {
super.viewDidLoad()
// Force le background noir sur tous les niveaux pour éliminer la
// bande blanche du bounce iOS WKWebView (cause : scrollView.backgroundColor
// par défaut blanc, exposé lors de l'overscroll). Aucun CSS web ne peut
// modifier ça il FAUT le faire côté natif.
view.backgroundColor = .black
webView?.isOpaque = false
webView?.backgroundColor = .black
webView?.scrollView.backgroundColor = .black
}
}