fix(ui): désactive bounce iOS WKWebView (bottom tab bar semblait remonter)

Symptôme rapporté par Sylvain 2026-05-18 : sur toutes les pages, quand
on scroll vers le bas et qu'on arrive en fin de page, la bottom tab bar
(#bottom-tabs en position: fixed) "remonte" visuellement avec le rebond
élastique iOS.

Cause : WKWebView UIScrollView a `bounces = true` par défaut. Pendant
le rebond élastique en fin de scroll, le viewport iOS bouge et les
éléments position:fixed suivent visuellement le rebond pour quelques
millisecondes — donnant l'impression que la nav bar n'est pas vraiment
fixe.

Fix natif Swift (doc Apple-recommandée pour ce cas) :
- webView.scrollView.bounces = false
- webView.scrollView.alwaysBounceVertical = false
- webView.scrollView.alwaysBounceHorizontal = false

Plus fiable que le hack JS preventDefault touchmove existant dans
_layout.html (qui restera comme fallback web pur).

Bump build requis côté Mac avant rebuild TestFlight.
This commit is contained in:
Sylvain Bettinelli
2026-05-18 14:42:57 +00:00
parent a21b067eac
commit 8134b843f7

View File

@@ -38,5 +38,16 @@ class MainViewController: CAPBridgeViewController {
if #available(iOS 16.4, *) {
webView?.isInspectable = true
}
// Désactive le rebond élastique iOS du WKWebView (en haut + en bas).
// Sans ça, quand l'user arrive en bas/haut de page et continue à
// swiper, le contenu rebondit visuellement les éléments
// `position: fixed` (notre bottom tab bar #bottom-tabs) suivent
// le rebond et semblent "remonter" hors de l'écran momentanément.
// Solution Apple-recommandée pour app Capacitor : désactiver bounces
// au niveau UIScrollView native (plus fiable que preventDefault JS).
webView?.scrollView.bounces = false
webView?.scrollView.alwaysBounceVertical = false
webView?.scrollView.alwaysBounceHorizontal = false
}
}