Fix: Long-Press auf FAB 350ms statt 600ms + iOS-Textauswahl unterdrücken, SW by-v1094
User-Feedback: 600ms Long-Press triggert iOS-Textauswahl. - Trigger-Dauer von 600ms auf 350ms verkürzt — feuert vor iOS- Auswahl-Callout (typisch ~500ms) - Am #worlds-fab user-select:none, -webkit-user-select:none, -webkit-touch-callout:none — verhindert dass iOS bei Press ein Lupensymbol/Auswahl-Menü öffnet
This commit is contained in:
parent
61af803d99
commit
6224044654
5 changed files with 17 additions and 12 deletions
|
|
@ -410,7 +410,7 @@ async def serve_media(path: str, request: _Request):
|
||||||
raise _HE(404, "Nicht gefunden.")
|
raise _HE(404, "Nicht gefunden.")
|
||||||
return _media_response(filepath)
|
return _media_response(filepath)
|
||||||
|
|
||||||
APP_VER = "1093" # muss mit APP_VER in app.js übereinstimmen
|
APP_VER = "1094" # muss mit APP_VER in app.js übereinstimmen
|
||||||
|
|
||||||
@app.get("/.well-known/assetlinks.json")
|
@app.get("/.well-known/assetlinks.json")
|
||||||
async def assetlinks():
|
async def assetlinks():
|
||||||
|
|
|
||||||
|
|
@ -101,9 +101,9 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
|
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
|
||||||
<link rel="stylesheet" href="/css/design-system.css?v=1093">
|
<link rel="stylesheet" href="/css/design-system.css?v=1094">
|
||||||
<link rel="stylesheet" href="/css/layout.css?v=1093">
|
<link rel="stylesheet" href="/css/layout.css?v=1094">
|
||||||
<link rel="stylesheet" href="/css/components.css?v=1093">
|
<link rel="stylesheet" href="/css/components.css?v=1094">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
|
@ -625,11 +625,11 @@
|
||||||
<div id="modal-container"></div>
|
<div id="modal-container"></div>
|
||||||
|
|
||||||
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
|
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
|
||||||
<script src="/js/api.js?v=1093"></script>
|
<script src="/js/api.js?v=1094"></script>
|
||||||
<script src="/js/ui.js?v=1093"></script>
|
<script src="/js/ui.js?v=1094"></script>
|
||||||
<script src="/js/app.js?v=1093"></script>
|
<script src="/js/app.js?v=1094"></script>
|
||||||
<script src="/js/worlds.js?v=1093"></script>
|
<script src="/js/worlds.js?v=1094"></script>
|
||||||
<script src="/js/offline-indicator.js?v=1093"></script>
|
<script src="/js/offline-indicator.js?v=1094"></script>
|
||||||
|
|
||||||
<!-- Feature-Seiten werden lazy geladen -->
|
<!-- Feature-Seiten werden lazy geladen -->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Router, State-Management, Navigation, Initialisierung.
|
Router, State-Management, Navigation, Initialisierung.
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
const APP_VER = '1093'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
const APP_VER = '1094'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
|
||||||
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt
|
||||||
window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator)
|
window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator)
|
||||||
window.APP_VERSION = APP_VERSION;
|
window.APP_VERSION = APP_VERSION;
|
||||||
|
|
|
||||||
|
|
@ -260,12 +260,17 @@ window.OfflineIndicator = (() => {
|
||||||
if (!fab || fab.dataset.lpBound) return;
|
if (!fab || fab.dataset.lpBound) return;
|
||||||
fab.dataset.lpBound = '1';
|
fab.dataset.lpBound = '1';
|
||||||
|
|
||||||
|
// iOS: Long-Press würde sonst Textauswahl/Callout-Menü triggern
|
||||||
|
fab.style.webkitUserSelect = 'none';
|
||||||
|
fab.style.userSelect = 'none';
|
||||||
|
fab.style.webkitTouchCallout = 'none';
|
||||||
|
|
||||||
let timer = null;
|
let timer = null;
|
||||||
let fired = false;
|
let fired = false;
|
||||||
const start = () => {
|
const start = () => {
|
||||||
fired = false;
|
fired = false;
|
||||||
clearTimeout(timer);
|
clearTimeout(timer);
|
||||||
timer = setTimeout(() => { fired = true; openStatus(); }, 600);
|
timer = setTimeout(() => { fired = true; openStatus(); }, 350);
|
||||||
};
|
};
|
||||||
const cancel = () => clearTimeout(timer);
|
const cancel = () => clearTimeout(timer);
|
||||||
fab.addEventListener('touchstart', start, { passive: true });
|
fab.addEventListener('touchstart', start, { passive: true });
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
|
||||||
// ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab
|
// ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab
|
||||||
const VER = '1093';
|
const VER = '1094';
|
||||||
const CACHE_VERSION = `by-v${VER}`;
|
const CACHE_VERSION = `by-v${VER}`;
|
||||||
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
const CACHE_STATIC = `${CACHE_VERSION}-static`;
|
||||||
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue