fix(pwa): disable pinch-to-zoom and block residual body scroll (#16)
- Added user-scalable=no, maximum-scale=1 to viewport meta tag to prevent pinch-to-zoom in standalone PWA mode - Added overflow: hidden to html, body so any minimal content overflow cannot make the body scrollable (belt-and-suspenders alongside overscroll-behavior: none) - Service worker cache bumped to v28/v27
This commit is contained in:
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.14.4] - 2026-04-06
|
||||
|
||||
### Fixed
|
||||
- PWA iOS: pinch-to-zoom disabled - added `user-scalable=no, maximum-scale=1` to viewport meta tag for native-app feel (#16)
|
||||
- PWA iOS: residual body scroll fully blocked - added `overflow: hidden` to `html, body` so any minimal content overflow can no longer make the page body scrollable (#16)
|
||||
- Service worker cache bumped to v28/v27 (#16)
|
||||
|
||||
## [0.14.3] - 2026-04-06
|
||||
|
||||
### Fixed
|
||||
|
||||
+2
-2
@@ -2,8 +2,8 @@
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<!-- Viewport: edge-to-edge, kein Auto-Zoom bei Inputs -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||||
<!-- Viewport: edge-to-edge, kein Zoom (PWA-native feel) -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, user-scalable=no, maximum-scale=1" />
|
||||
|
||||
<!-- PWA / Theme -->
|
||||
<meta name="theme-color" content="#007AFF" media="(prefers-color-scheme: light)" />
|
||||
|
||||
@@ -4,8 +4,12 @@
|
||||
* Abhängigkeiten: tokens.css, layout.css
|
||||
*/
|
||||
|
||||
/* ── Kein Rubber-Banding / Pull-to-Refresh des Browsers ── */
|
||||
/* ── Kein Rubber-Banding, kein Body-Scroll ──
|
||||
* overflow: hidden verhindert, dass body scrollbar wird, falls ein
|
||||
* Element minimal überläuft. overscroll-behavior: none deaktiviert
|
||||
* Pull-to-Refresh und Rubber-Banding. */
|
||||
html, body {
|
||||
overflow: hidden;
|
||||
overscroll-behavior: none;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -12,9 +12,9 @@
|
||||
* API: Immer Netzwerk (kein Caching von Nutzerdaten)
|
||||
*/
|
||||
|
||||
const SHELL_CACHE = 'oikos-shell-v27';
|
||||
const PAGES_CACHE = 'oikos-pages-v26';
|
||||
const ASSETS_CACHE = 'oikos-assets-v26';
|
||||
const SHELL_CACHE = 'oikos-shell-v28';
|
||||
const PAGES_CACHE = 'oikos-pages-v27';
|
||||
const ASSETS_CACHE = 'oikos-assets-v27';
|
||||
const ALL_CACHES = [SHELL_CACHE, PAGES_CACHE, ASSETS_CACHE];
|
||||
|
||||
// App-Shell: sofort benötigt für ersten Render
|
||||
|
||||
Reference in New Issue
Block a user