HeadlinesBriefing favicon HeadlinesBriefing.com

QR-Codes leiten zum richtigen Store

Hacker News •
×

Als ich Poker Nexus Anfang dieser Woche ankündigte, erwähnte ich beiläufig, dass es "einen separaten Shortlink-Host für gedruckte Links" einsetzt. Dieser Beitrag behandelt, was dieser Host tut und warum er so gebaut ist. Das Ziel war einfach. Ich wollte Visitenkarten mit einem QR-Code auf der Rückseite, der "Download" sagt. Das Problem ist, dass ein QR-Code genau eine URL kodiert, während "App herunterladen" je nach Scanner drei verschiedene Orte bedeutet: Ein iPhone sollte zur App Store-Listung gelangen, ein Android-Telefon zur Google Play-Listung und alles andere (ein Laptop, ein Crawler, ein Gerät, das ich nicht identifizieren kann) sollte zur Website gelangen. Gedruckte Karten können nicht aktualisiert werden, sobald sie in jemandes Geldbörse sind, daher muss die URL auf ihnen weiterhin funktionieren, selbst wenn sich die Ziele später ändern. Beide Probleme weisen auf dieselbe Antwort hin: Drucken Sie eine URL, die ich kontrolliere, und lassen Sie den Server entscheiden, wohin jede Anfrage geht. Die Karten zeigen auf `https://go.pokernexus.com/app`.

Ich habe den QR-Code selbst mit meinem QR-Code-Generator erstellt. Er läuft vollständig im Browser und exportiert ein einfaches SVG oder PNG, was eine Druckerei möchte. Eine kurze URL erzeugt einen weniger dichten Code, und ein weniger dichter Code hat größere Module, die in Visitenkartengröße zuverlässiger scannen. `go.pokernexus.com/app` ist kurz genug, um auf einer niedrigen QR-Version zu bleiben. Das Platzieren eines Logos in der Mitte deckt einige der Module ab, daher muss der Code auf Fehlerkorrektur zurückgreifen, um sie auszugleichen. Der Generator erhöht die Stufe auf H (etwa 30% wiederherstellbar), sobald ein zentrales Symbol hinzugefügt wird, was es dem Poker Nexus-Club ermöglichte, in der Mitte zu sitzen, ohne Scans zu unterbrechen.

Der Host wird von einer kleinen eigenständigen Hono-App bedient. Jeder Ort, an den er jemanden senden kann, wird als `Destination` beschrieben: eine URL plus ein Flag, das angibt, ob die eingehende Abfragezeichenfolge darauf kopiert werden soll. Die Routing-Tabelle ordnet jeden Pfad einem `Target` zu, das entweder ein festes `Destination` oder eine Funktion ist, die eines basierend auf der Anfrage auswählt. Die Entscheidung wird allein anhand des `User-Agent`-Headers getroffen. Jeder Zweig, der keine sichere Übereinstimmung ist, fällt auf die Website zurück. Diese Asymmetrie ist beabsichtigt. Eine falsche Antwort, die auf der Website landet, ist immer noch eine funktionierende Seite, während eine falsche Antwort, die in einem Store landet, eine Installationsaufforderung für ein Gerät ist, das die App nicht ausführen kann.

Die Reihenfolge dieser Prüfungen ist leicht zu übersehen. Die Smartphone-Crawler von Google identifizieren sich als Telefone und fügen ihren eigenen Namen hinzu, daher enthält der User-Agent des Android-Crawlers `Android` und der des iOS-Crawlers `iPhone`. Bots werden zuerst überprüft, um sicherzustellen, dass sie auf der Website landen, nicht im Store.

Wichtige Entitäten: Unternehmen: Poker Nexus, Google, Apple