Wir haben URL-Schemata behandelt:
Ein URL-Schema ist wie "http://..." oder "ftp://...". Das erscheinen wie ein sehr niedrigstufiges Konzept, über das man nicht viel Kontrolle hat, aber tatsächlich hat man das!
Ich würde es als nicht trivial bezeichnen, aber Entwickler können neue URL-Schemata in Apps registrieren, die Benutzer installieren. Bereits 2017 tat Microsoft Edge dies
microsoft-edge://
Wenn Sie das verwenden, ist das Verhalten, die URL in Microsoft Edge zu öffnen – auch wenn Sie einen anderen Standardbrowser gewählt haben. Wenn ich also als Blogger Sie im Wesentlichen dazu zwingen wollte, Edge für diese Website zu verwenden, könnte ich dies tun, indem ich jede einzelne URL mit diesem URL-Schema beginne. Ich werde es nicht tun, aber ich könnte. Und Microsoft auch.
Zu dieser Zeit schrieb Daniel Aleksandersen ein Programm namens EdgeDeflector, um dieses Verhalten zu umgehen und erklärte
Ich hasse Microsoft Edge nicht – vielleicht tun Sie es! –, aber ich glaube, Benutzer, die sich die Mühe gemacht haben, einen anderen Standard-Webbrowser zu konfigurieren, sollten diesen Standard-Webbrowser weiterhin nutzen dürfen.
Dies ist wieder in den öffentlichen Fokus geraten, da der Brave-Browser nun das URL-Schema microsoft-edge:// unterstützt. Anscheinend muss nicht nur eine App ein URL-Schema registrieren, sondern auch andere Apps, die Klicks auf Links unterstützen, müssen es beachten. Firefox denkt ebenfalls darüber nach, es hinzuzufügen. Ich denke, das Risiko, das URL-Schema *nicht* zu unterstützen, besteht darin, dass Klicks auf solche Links *nichts* tun könnten, anstatt die URL tatsächlich zu öffnen.
Vieles davon handelt von Windows 11. Aber hier auf meinem Mac sehe ich, dass dieses URL-Schema das tut, was es beabsichtigt, über all diese Browser hinweg.




Daniel geht weiter
Wie sind wir hierher gekommen? Bis zur Veröffentlichung von iOS Version 14 im September 2020 konnte man den Standard-Webbrowser auf iPhones und iPads nicht ändern. Google hat viele Apps für iOS, darunter eine Shell für seinen Chrome-Browser. Um all seine Apps miteinander zu verbinden, führte Google im Februar 2014 ein URL-Schema
googlechrome:ein. Es konnte diese Links verwenden, um Sie von seiner Such- oder Mail-App zu Chrome statt zu Apples Safari-Browser zu leiten.
Hier öffnet mein iPhone 13 googlechrome://css-tricks.de mit und ohne installiertes Google Chrome.


Es scheint, als wäre das *der* Fehler von Google, aber anscheinend ist es Apple, das dies unter iOS erlaubt hat. Daniel noch einmal
Die ursprüngliche Sünde war Apples, aber Microsoft kostet den Saft des Apfels mit Begeisterung.
Ich bin nicht so gut informiert wie ich sein sollte, aber ich denke, wenn ich Software entwickeln würde, die hier involviert ist, wäre ich versucht, diese URL-Schemata abzufangen und sie im Browser zu öffnen, den der Benutzer *bereits verwendet*. Das Web ist das Web, es sollte keinen Grund geben, warum eine bestimmte URL in einem bestimmten Browser geöffnet *werden muss*.
Außer, dass dies nur eine Art der Nutzung von URL-Schemata ist. Sie werden auch verwendet, um Links zu Nicht-Browser-Apps zu erstellen, und das ist definitiv besser für den Endbenutzer. Aber Browser könnten die anderen browser-spezifischen Schemata sicherlich nicht respektieren.
Ich sehe, wohin das führt – Die Rückkehr von "Diese Webseite wurde für Ihr Browser Hier entworfen" steht vor der Tür!
Oder zumindest die gleiche Denkweise.
Das Problem mit dem microsoft-edge: Schema im Besonderen ist, dass Microsoft es *überall* in Windows 10 und 11 platziert hat. Unzählige Links zwingen Benutzer, Edge anstelle des systemweiten Standard-Webbrowsers zu verwenden. Startmenü-Suchen öffnen Edge, von Ihrem Telefon gesendete Links öffnen Edge, Links in vielen First-Party-Apps zwingen Sie zu Edge, und Hilfe-Links im gesamten Betriebssystem zwingen Sie zu Edge.
Das Verrückte ist, warum das den einzelnen Browsern überlassen bleibt. Dieses Verhalten sollte an das Betriebssystem weitergegeben werden. Jetzt haben wir ein Durcheinander von unterschiedlich aussehenden und sich verhaltenden Implementierungen, und das nur für die Browser, die es unterstützen.
Persönlich würde ich, wenn ich entscheiden müsste, ob ich einem Browser erlaube, Links in einem anderen Browser zu öffnen, es einfach ignorieren und das Link-Präfix als https interpretieren.
Das scheint nur ein Dark Pattern zu sein, das aus den gut gemeinten Deep-Links (Universal Links) entstanden ist. Nicht-Browser-Apps verwenden diese ebenfalls; so funktionieren beispielsweise selbst gehostete Sketch-Bibliotheken.
Ich frage mich, ob das der Grund ist, warum auf meinem Samsung S9 manchmal Apps usw. den Samsung Internet Browser und nicht Google Chrome (Standardbrowser) öffnen?
Der Mechanismus für benutzerdefinierte Browser-Schemata ist die Grundlage für die Interoperabilität von Anwendungen und ist nicht auf Browser beschränkt – er funktioniert gut für native Apps. Ich denke, Betriebssysteme und Browser sollten ihn respektieren. Wenn er von einer Webanwendung missbraucht wird, ist das die Schuld des Entwicklers, nicht des Betriebssystems und nicht des Browsers.