From 8134b843f79e7cbfd55e45bb2c66d73dd39fcd68 Mon Sep 17 00:00:00 2001 From: Sylvain Bettinelli Date: Mon, 18 May 2026 14:42:57 +0000 Subject: [PATCH] =?UTF-8?q?fix(ui):=20d=C3=A9sactive=20bounce=20iOS=20WKWe?= =?UTF-8?q?bView=20(bottom=20tab=20bar=20semblait=20remonter)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- ios/App/App/MainViewController.swift | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ios/App/App/MainViewController.swift b/ios/App/App/MainViewController.swift index aca0510..8d94cb2 100644 --- a/ios/App/App/MainViewController.swift +++ b/ios/App/App/MainViewController.swift @@ -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 } }