Einzelstueck-QR ueber Custom-Scheme statt Universal Link
Universal Links (Associated Domains) sind an eine feste Domain gebunden - fuer einen selbstgehosteten Dienst untauglich (jede Instanz hat eine andere URL) und die Domain stand im offenen Quellcode (Leak). Jetzt tragen Einzelstueck-QRs das Custom-Scheme vorrania://i/<UID>: Die normale Kamera-App oeffnet die App weiterhin, aber ohne Domain-Bindung und ohne Server im Code. applinks-Eintrag entfernt. Web: itemDeepLink()-Helfer, genutzt in Einzelstuecke-Liste/-Etiketten und im P-touch-Export. Lagerort-QRs bleiben unveraendert (https). iOS: Router erkennt vorrania://i/<UID> und oeffnet das Einzelstueck am aktiven Server. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
48d47f1d39
commit
f981f41d94
@@ -1,6 +1,15 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import QRCode from "qrcode";
|
||||
|
||||
/**
|
||||
* QR-Inhalt für ein Einzelstück. Bewusst das Custom-Scheme `vorrania://` statt
|
||||
* einer https-URL: Die normale Kamera-App öffnet damit trotzdem die App, aber
|
||||
* OHNE an eine feste Domain gebunden zu sein. Das ist für einen selbstgehosteten
|
||||
* Dienst nötig (jede Instanz hat eine andere URL) und der QR verrät keinen Server.
|
||||
* Die App öffnet die UID am gerade aktiven Server.
|
||||
*/
|
||||
export const itemDeepLink = (uid) => `vorrania://i/${uid}`;
|
||||
|
||||
/** Kleines QR-Bild für einen Wert (asynchron erzeugt). */
|
||||
export function QrImg({ text, size = 60 }) {
|
||||
const [url, setUrl] = useState(null);
|
||||
|
||||
Reference in New Issue
Block a user