Hyperlinking Über das Web hinaus

0
12

Hyperlinks sind das älteste und beliebteste feature des web. Das Wort hypertext (das ist der ht in http/s) bedeutet, dass text mit hyperlinks. Die Möglichkeit der Verbindung zu anderen Menschen ist hypertext gemacht die web, eine web—, eine Reihe von verknüpften Seiten. Diese grundlegende Funktion hat das web eine sehr leistungsfähige Plattform und es ist offensichtlich, dass die Welt der apps, braucht diese Funktion. Alle modernen Plattformen unterstützen, einen Weg für Anwendungen zu registrieren, eine URI (eigenes Protokoll) und haben auch universal-links (Umgang mit web-links in der app).

Lasst uns sehen, warum wir wollen, um die Vorteile dieser Funktion und wie es zu tun.

Warum haben die app-links überhaupt?

Die Erstellung von URIs, die apps öffnen können, stellt eine einzigartige Kombination von Vorteilen. Eine URL kapselt den gesamten Zustand der Webseite (es verwendet, um vor der Einführung von Single-Page Applications (SPAs) schwer mit JavaScript und auch in Ihnen, ist es am besten Praxis, um diese Funktionalität) oder eine web-Anwendung, und es ist ratsam, routing-Anwendungen so, dass eine URL, die navigation wird nicht unterbrochen. URLs erlaubt haben, Browsern konsistente Schaltflächen zurück und vorwärts, und laden Sie und bookmark-Seiten. Und Dinge wie die Google-Suche angewiesen auf die Homepage-Adressen und web-Anwendungen zu navigieren, die der Benutzer an der richtigen Stelle. Anwendungen erlaubt wird, zum öffnen von URLs bietet eine Möglichkeit zur Verknüpfung von Inhalten und Funktionalitäten in Ihre Anwendung von den anderen Anwendungen, websites und auch intern innerhalb der Anwendung, wie Hilfe/tutorial-Seiten.

Trivia! Desktop-Anwendungen hyperlinks, noch bevor das world wide web, wie Hypercard auf dem Mac im Jahr 1987 und in der Windows-Hilfe im Jahr 1990. Die revolutionäre Sache über hyperlinks im web ist, dass Sie können eine Verknüpfung von Inhalten, die erstellt und ist im Besitz von anderen. Dieses Konzept der cross-app-Verlinkung war nicht beliebt in der traditionellen Plattformen, bis der Aufstieg des smartphones.

App links über das command-line

Gibt es schon eine Schale für das command-line-interface und unterstützt die Weitergabe von Argumenten, die Umleitung der Ergebnisse von einer Anwendung zur anderen, und auch scripting. Dennoch ist die Notwendigkeit für die Unterstützung für hyperlinks ist wünschenswert, aus verschiedenen Gründen:

  • Sicherheit: Das Kommandozeilen-Skript zu kompliziert ist, um richtig zu machen. Es ist sehr riskant zu erwarten, dass die Nutzer der Technologie (die keine Entwickler sind), um zu verstehen, wie zu bereinigen ein Kommandozeilen-script und stellen Sie sicher, dass das Skript nicht zufällig nennen so etwas, wie rm -rf ~/Dokumente. Die Befehlszeile ist nicht sand-boxed, und obwohl es bietet eine Leistung an, es legt die Verantwortung auf die Nutzer und ist anfällig für die exploits.
  • Unterstützte Browser: Der browser kann nicht die command-line-interface. Es ist gebaut, um das ausführen von nicht vertrauenswürdigen Drittanbieter-code in einer sandbox und kann nicht gebrochen werden. Und, wenn wir nicht respektieren die Regeln der web-Technologie, die app silo selbst aus dem Internet. Das ist zu viel zu verlieren.
  • Mobile: In der Welt von mobile, einer touch-Tastatur ist nicht so gut und intuitiv wie die körperliche diejenigen, die auf dem desktop benutzt werden. Daher, auch wenn die Befehlszeile vorhanden war, würde es sehr schwierig sein, zu verwenden. Alle Kraft der Umleitung und Verkettung ist nicht so effektiv, da es über einen Tastatur-Befehl Linie. Eine einfachere Lösung, wie die URL ist mehr wünschenswert, in diesem Zusammenhang.
  • Zustand: Theoretisch ist das command-line-interface kann ein Weg, um die Anwendung in jedem Staat. Aber, praktisch, gebaut wurde es für einen separaten Zweck: um die Anwendung zu starten, um eine Aufgabe auszuführen und dann zurück, mit einem code. Darüber hinaus war es de-priorisiert von der GUIs für Windows und Mac. Viele Anwendungen (wie Microsoft Word und Adobe Photoshop) hatte nie vollwertige Unterstützung der Befehlszeile. Sie sind nicht einmal die in der Umwelt vorhanden PFAD und müssen den vollständigen Pfad gestartet werden. URIs bieten einen neuen Weg zu suchen, bei verbinden von Informationen sowie die Funktionalität zwischen Anwendungen. Sie sind eine sichere, moderne Art der inter-app-Kommunikation, wenn der Benutzer nicht zu denken.

Verknüpfung Von Terminologie

Deep Link

Deep-link ist das Konzept, wo eine bestimmte Seite/Funktionalität innerhalb der website/Anwendung verknüpft werden können. Zum Beispiel, https://css-tricks.com/link/to/this/page ein deep-link für diese Seite im Allgemeinen https://css-tricks.com link. Im Gegensatz zu oberflächlichen links, Anwendungen öffnen, “deep-links” öffnen Sie die Anwendung in einem bestimmten Zustand, mit übergebenen Daten, bereit, verzehrt zu werden. Benutzerdefinierte URI (unten beschrieben) waren die ersten Möglichkeiten, das zu erreichen deep-Links innerhalb der app und “deep linking” in vielen Kontexten, ist nun gleichbedeutend mit benutzerdefinierten URI, obwohl es kann auch bedeuten, Universal links.

Benutzerdefinierte URI

Das web hatte immer bestimmte eigene URIs, die im Zusammenhang mit Standard-Anwendungen, wie mailto:username@host.com tel:1234567890 E-Mail-und Telefon-bzw. Es war eine offensichtliche Wahl zu erweitern, diese und alle wichtigen Plattformen bieten eine Möglichkeit für eine app zur Registrierung eines URI-Protokoll — wie css-tricks://<link details> — kann tief verbunden native Anwendung. Es sollten Kapseln den gesamten Staat und alle routing-Vorteile öffnen Sie die app, wenn es auf dem system vorhanden ist. Diese bieten eine gute Schnittstelle für die inter-app-Kommunikation, wenn die Anwendung bereits installiert ist und der Wunsch ist, öffnen Sie den Benutzer bevorzugte Anwendung (wie den browser oder email-client) implementiert, dass das gewünschte Protokoll.

Benutzerdefinierten URIs sind ideal für die Klasse von Anwendungen, wo der Benutzer will eine Wahl haben, wählen Sie eine app zur Durchführung einer bestimmten Wahl, aber Sie sind nicht gut für die Aufgabe der Verknüpfung der website, um die native Anwendung aus folgenden Gründen:

  • Installation: im Gegensatz zu den web -, native apps zur installation benötigen und, wenn Sie nicht installiert sind, haben Sie zwei Möglichkeiten: schicken Sie den Nutzer zum app-store (die bietet auch einen benutzerdefinierten URI) oder richtig fallen zurück. Beide Aufgaben erfordern zusätzlichen code, mit dem der URI nicht fassen. Der app store URI würde eine separate URI, die wir brauchen, um zu speichern. Darüber hinaus haben wir zu erkennen, ob die app installiert ist, erfordert das navigieren zu den URI und den Umgang mit dem Fehler in der navigation, wie ein 404, da das Protokoll nicht registriert. Dies ist nicht so einfach, wie ein Anker-tag (<a href=”{URL}”></a>) und ist daher eine häufige Quelle von Entwickler Beschwerden.
  • Fehlen einer zentralen Registrierung: Auch wenn alles getan wird, völlig richtig ist, können Benutzer weiterhin geworfen werden, in eine Anwendung, die Sie sollten nicht verknüpft worden. Im Gegensatz zum DNS-system (die Eindeutigkeit der domain-Namen), Anwendungsplattformen, die nicht über ein zentrales repository. So, mehrere apps registrieren konnte csstricks als ein benutzerdefiniertes URI. Nun, jemand anderes könnte auch für die Registrierung von derselben URI wie eine app und wenn die andere Anwendung auf dem system installiert ist, statt der gewünschten, könnte es starten, statt. Die Freiheit des einen benutzerdefinierten URI für app-Auswahl und arbeitet gegen den Fall, wo wir immer wollen, öffnen Sie eine bestimmte Anwendung.
  • Dritte Verknüpfung: Geben Sie einen benutzerdefinierten URI an Dritte, weil die Probleme, die wir haben oben beschrieben, ist mühsam und überprüfen Sie schmerzhaft ist. Es ist auch ein neues Protokoll. Jede website hat links zu den web-Inhalten und die Aktualisierung der Gesamtheit des Internet ist nicht möglich. Kann es auch nicht offen für SEO Zwecke.

Wenn wir also wollen, geben Sie dem Benutzer die Erfahrung, wo die app ist der bevorzugte Weg, um Inhalte anzuzeigen, benutzerdefinierten URIs sind nicht die perfekte Lösung. Dies kann gemildert werden mit der smart-app-Banner in gewissem Maße, wo das banner angezeigt werden würde, wenn der browser ruft die benutzerdefinierte URI und der app-store-link um die Anwendung zu identifizieren. Aber das wird nicht nahtlos sein.

Trivia! URIs und URLs sind leicht unterschiedlich, per definition, obwohl Sie Synonym verwendet. URI steht für Uniform Resource Identifier, was bedeutet, dass es kapselt alles, was erforderlich, um eine Ressource. URL (Uniform Resource Locator) ist ein spezieller Typ von URI, die die Ressource auf dem web. Also, technisch gesehen, eine web-Adresse ist eine URL, aber so etwas wie csstricks:// wäre nur ein URI.

Diese sind alle möglichen Anwendungsfälle, wo ein benutzerdefiniertes URI-könnten Sinn machen:

  • Sie müssen eine URI, dass viele third-party-client-apps registrieren können. Angenommen, Sie haben ein git:// in der app und das user ‘ s Lieblings-git-client registrieren konnte, dass URI und clone das repo, wenn der link angeklickt wird.
  • Sie nicht über eine voll funktionsfähige website.
  • Sie benötigen eine URI, die ist einfach für die Nutzer zu erinnern.
  • Sie sind bereit, um alle Sonderfälle im Zusammenhang mit der navigation.

Sie können mithilfe von benutzerdefinierten URIs parallel zu den Universal-link, den wir behandeln werden weiter und Sie profitieren von der Enthüllung der benutzerdefinierten URL für inter-app-Kommunikation verlassen, während die Universal-link für den speziellen Fall der web-to-app-navigation. Android offiziell nennt benutzerdefinierten URIs deep-links.

Ablaufsteuerungen für Benutzerdefinierte URI, Universal-Link-und Instant Apps

Universal-link, App-Link oder in der App-URI

Die Lösung für das problem der web-to-app-Umleitung Problem kann mit der Universal-link (wie es heißt in der Mac-und iOS -) App-Link (wie es heißt in Android) oder App-URI (wie es heißt in Windows UWP), das sind verschiedene Namen für das gleiche Konzept. Diese kapselt die Logik, dass jede website braucht, um zu schreiben, um zu erkennen, installierte apps starten richtigen Seiten und behandeln der navigation Fehler im Fall von benutzerdefinierten URLs. Es ist sehr ähnlich zu den smart-app-banner in dem Sinne, dass Sie brauchen, um eine app-store-link zu der Anwendung auf Ihrer website für die überprüfung, aber es entfernt alle die Redundanz. Da die bestehende http(s) URL enthält bereits den gesamten Staat, die Registrierung der benutzerdefinierten URI ist überflüssig. Die original-URL kann selbst navigieren Sie zu der app mit der website, die einen fallback-Erfahrung im Fall der Anwendung ist nicht installiert.

Sobald Sie Ihre app registrieren mit einem universal-link, wenn die app installiert ist, das OS geht auf das Internet, um herauszufinden, die Menge der links, die von der app unterstützt. Wenn einer dieser links angeklickt, wird die native app wird gestartet, statt auf den browser. Vollständige Adressierung Unterstützung ist nun verfügbar in der Anwendung, wo mehr individuelle Erfahrung gestellt werden können, fallen zurück an den browser, wenn die Anwendung nicht installiert. Auf die wichtige Unterscheidung mit universal-links ist, dass Sie wirken regelmäßig surfen und daher die OS-Anbieter halten dann auch unter enger Schloss und Schlüssel.

Ein paar gute Anwendungsfälle für Universal-links:

  • Haben Sie eine voll funktionsfähige website für ein fallback.
  • Den gewünschten Durchfluss für den Benutzer wird von der website zur app.
  • Sie haben bereits gebaut bis eine Menge von karma, indem er Ihre Inhalte von verlinkten Webseiten rund um das web.

Sofortige Link oder Latente Deep Link

Latente deep-links bieten das fehlende Stück des deep-links, wenn der Benutzer geht auf die app installieren, wenn der link geöffnet wird. Die Benutzer weitergeleitet werden können, um den app store und den app store kümmert sich um die Aufrechterhaltung der Kontext, wenn die app ist schließlich startete nach der installation. Dieses bietet Kontinuität in dem Fall, in dem eine app installiert ist. Derzeit wird diese Methode nur dann unterstützt, von Android (Google Play Instant) und es ist die option, wenn Sie möchten, dass Benutzer aus der app, um die gewünschte Funktionalität zu erhalten. Die hyperlink-system auf dem web nahtlos und klicken auf einen link wird Sie zum Ziel fast sofort (obwohl eine Menge Dinge passieren hinter den kulissen). Latente deep-links bereitstellen der gleichen Funktionen für apps, bei denen das klicken auf einen link kann die app herunterladen und starten Sie es mit der richtigen Seite, dass alle die Aufgaben, die auf der app-installation so reibungslos wie möglich.

Sie könnte erwägen, sofortige links, wenn:

  • Sie müssen die Benutzer die app und nicht die website, auch wenn Sie kommen aus dem browser (außer bei seltenen Fällen, in denen Sie genügend Speicherplatz auf dem Datenträger oder haben sich diese Funktion deaktivieren, um Bandbreite zu sparen).
  • Ihre wichtigsten Seiten sind immer up-to-date in Ihrer Anwendung.
  • OK, verwende Sie immer. Mit den zusätzlichen SEO-Vorteile, die Google wirft für instant apps, es gibt keinen Grund, nicht zu aktivieren “instant” – apps eine app, hat Universal links.

Nun haben wir eine Zusammenfassung von dem, was jeder Begriff bedeutet, dass, lassen Sie uns sehen, wie wir gehen über erstellen diese auf bestimmten Plattformen.

Einrichten der Anwendungs-hyperlinks

MacOS und iOS
Benutzerdefinierte URI

Registrieren einer benutzerdefinierten URI in MacOS und iOS ist extrem einfach. In Xcode, gehen Sie auf die Info.plist-Datei des Projekts, und wählen Sie die option URL-Typen. Erstellen Sie ein Element vom Typ ” URL-Schemas in der Datei, wo Sie hinzufügen können alle URL-Schemata, die du unterstützen möchtest.

Hinweis: Die Standard-URL-Identifier gefüllt, die von Xcode innerhalb von URL-Typen ist optional.

URL-Schema in Xcode

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>css-tricks</string>
</array>
</dict>
</array>

Für MacOS, Sie erhalten Anrufe auf die AppDelegate wo können Sie die Funktion überschreiben:

func Anwendung(_ Anwendung: NSApplication, urls öffnen: [URL]) {
// Wählen Sie die erste URL in der Liste der URL zu öffnen
lass url = urls[0];
// Log die gesamte URL
NSLog(“%@”, url.absoluteString)
}
-(void)application:(NSApplication *)Anwendung openURLs:(NSArray<NSURL *> *)urls {
NSLog(@”%@”, urls[0].absoluteString);
}

In iOS, die Funktion zu erhalten die selben Aufruf im AppDelegate ist:

func Anwendung(_ app: UIApplication, open-url: url, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
NSLog(“%@”, url.absoluteString)
return true
}
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url-Optionen: (NSDictionary<UIApplicationOpenURLOptionsKey,id> *)Optionen {
NSLog(@”%@”, url.absoluteString);
return true;
}

Der URL-Typ in allen diesen Fällen enthält die übliche URL Stücke wie der Weg, die Abfrage und die such-Parameter.

Universal Links

Universal-links werden nicht unterstützt MacOS. Bekommen universal links, die auf iOS, Sie müssen registriert sein, mit der Apple-Developer-Programm sein, oder ein Apple Developer Enterprise Programm-Mitglied. Universal links auf iOS sind Teil eines umfassenderen Konzepts der damit verbundenen Domänen, in denen die Geheimnisse der website, wie die gespeicherten Anmeldeinformationen zugreifen können aus der app und Apple nicht erlauben regelmäßige Xcode Benutzer versuchen, mit universal-links (wenn Sie versehentlich aktivieren Sie die Funktionalität Ihrer App-ID, aber nicht, diese in die Ansprüche, die vorbereitet werden, um einen Validierungs-Fehler: FEHLER ITMS-90046: “Ungültiger Code Signing Entitlements”).

Trivia! Universal-links sind ein neues Konzept und viele der Mac-und Windows desktop-Anwendungen gebaut werden mit Ihren eigenen Netzwerk-stack, verwenden Sie nicht den app store freigegeben worden ist kann Jahren. Also, der OS hat nicht die Kontrolle, die man braucht, um zu erzwingen, dass alle Anwendungen Folgen Sie den Universal-link-Konzept und die app öffnen. Apple hat sich entschieden, nicht umsetzen Universal Links in MacOS noch, während unter Windows funktionieren Sie nur in der Microsoft Edge-browser und andere UWP apps (die die gleiche Technik verwenden).

Registrieren Sie sich für Universal-links, die auf iOS, müssen Sie folgende Dinge tun:

  1. Aktivieren Sie die App-ID auf der Apple Entwickler-website, um die Funktion für die zugehörigen domains.
  2. Fügen Sie die zugehörigen domains zu den Berechtigungen, die Datei.
  3. Fügen Sie eine apple-app-site-association-Datei auf der web-Domäne, um Eigentums-Nachweis für die Anwendung.
  4. Hinzufügen von code für die Verarbeitung von Klicks auf Universal links.

Die Schritte 1 und 2 durchgeführt werden können, gemeinsam auf der Registerkarte Funktionen auf Xcode, wenn Sie angemeldet sind haben das richtige Profil ausgewählt (was ist aus Apple-Developer-oder Enterprise-Konto). Die Xcode-UI bietet ein Indiz dafür, dass die beiden Elemente, die abgeschlossen wurden.

Zugehörige Domains in der Capabilities-Abschnitt in Xcode

In dem Bild oben, Schritt 2 wurde erfolgreich abgeschlossen, während Schritt 1 noch aussteht. Sie können klicken Sie auf das Ausrufezeichen zu finden ist das Problem. Es ist wichtig, um das Präfix der Domäne mit applinks: identifiziert, müssen Sie die app-Verknüpfungen-Funktionalität; das gleiche wird für freigegebene Anmeldeinformationen). Dies kennzeichnet, dass die App-Link-Funktion aktiviert wurde.

Die oben aufgeführten Schritte können auch erreicht werden, individuell.

Für Schritt 1, aktivieren der Zugeordneten Domains in die App-ID ” – Sektion auf der Entwickler-website (siehe unten im Bild):

Apple-Entwickler-website zu aktivieren, die zugehörigen domains

Für Schritt 2 fügen Sie den folgenden zu den Berechtigungen, die Datei:

Ansprüche plist

<key>com.apple.Entwickler.verbunden-domains</key>
<array>
<string>applinks:css-tricks.com</string>
</array>

Nun, für Schritt 3, host-a-Zuordnungsdatei apple-app-site-Vereinigung wie https://css-tricks.com/apple-app-site-association mit mime-type application/json mit dem folgenden JSON-Daten aus dem Stammverzeichnis Ihrer website:

{
“applinks”: {
“apps”: [],
“details”: {
“ABCDEFGHIJ.com.ccs-tricks.mobile”: {
“Pfade”: [
“*”
]
}
}
}
}

Das obige snippet gewährt die app mit der ID ABCDEFGHIJ.com.ccs-tricks.mobile und bietet Zugriff auf alle Anfragen auf die https://css-tricks.com domain. Hinweis: dies funktioniert mit https, sondern http wird nicht unterstützt. Sie können auch einen alternativen Speicherort wie https://css-tricks.com/.well-known/apple-app-site-association für diese. Diese URL wird bevorzugt, da es die Android -, iOS-und UWP Verein Dateien in einem sicheren separaten Ordner nicht versehentlich gelöscht werden.

Trivia! Universal-links nicht garantieren, dass die app geöffnet wird. Wenn der Benutzer geht zurück auf die website, von der Kopfzeile in iOS, das Betriebssystem entscheidet standardmäßig die website, von der aus dann auf, bis der Benutzer entscheidet, die app zu benutzen, indem Sie auf die Kopfzeile wieder aus Safari.

Für Schritt 4, fügen Sie den folgenden code, um die app:

func Anwendung(_ application: UIApplication, weiter userActivity: NSUserActivity, restorationHandler: @entkommen ([Jede]?) -> Void) -> Bool {
wenn userActivity.activityType == NSUserActivityTypeBrowsingWeb {
lass url = userActivity.webpageURL!
print(url.absoluteString)
}
return true
}
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
wenn(userActivity.activityType == NSUserActivityTypeBrowsingWeb) {
NSLog(@”%@”, userActivity.webpageURL.absoluteString);
}
return true;
}

Smart app banners für iOS sind viel einfacher, und kann Hinzugefügt werden, über einen einfachen HTML-meta-tag im head-Abschnitt wie diesen:

<meta name=”apple-itunes-app” content=”app-id=123456789, app-argument=https://css-tricks.com/linkto/dieses/Artikel, affiliate-data=optionalAffiliateData”>

Sie dieselbe Methode aufrufen, die als Benutzerdefinierte URIs wir fallen früher.

Windows (Traditionell)

Auf den herkömmlichen Windows-Plattform (Win32/.NET), die benutzerdefinierte URI (sogenannte Custom Pluggable Protocol Handler”) ist die einzige unterstützte Funktion. Hinzufügen einer benutzerdefinierten URI in Windows beinhaltet das hinzufügen eines registry-Eintrag in HKEY_CLASSES_ROOT. Das folgende wird öffnen Sie die app mit dem absoluten Pfad gegeben, wenn Sie auf eine Verknüpfung zu den css-tricks://<text>. Durch die Verwendung der Kommandozeile, diese öffnet sich immer eine neue Instanz der app und nicht senden Sie die URL an die bestehende, laufende Anwendung.

Registry-Eintrag für die Bereitstellung von application-name
Registry-Eintrag für den Befehl öffnen

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTcss-tricks]
“URL Protocol”=””
@=”CSS-Tricks (Application name)”

[HKEY_CLASSES_ROOTcss-tricksshell]

[HKEY_CLASSES_ROOTcss-tricksshellopen]

[HKEY_CLASSES_ROOTcss-tricksshellopencommand]
@=””C:\Windows\notepad.exe” “%1″”

Die oben startet den Editor mit dem Befehl für die Kommandozeile entsprechend die URL geliefert. Sich bewusst sein, dass der Editor unterstützt keine benutzerdefinierten URI und nicht wissen, was zu tun mit der URL.

Dieses Verhalten ist ähnlich wie mit der Verabschiedung dieser auf die Konsole und die Anwendung muss sicherstellen, dass es korrekt unterscheidet zwischen argument als reguläre CLI oder ein benutzerdefiniertes URI, wie hier gezeigt:

namespace ConsoleApplication1 {
class Programm {
static void Main(string[] args) {
if (args.Length > 0 && args[0].IndexOf(“css-tricks:”) == 0) {
Console.Write(args[0]);
}
}
}
}
int main(int argc, char*argv[]) {
if (argc > 1) { // argv[0] ist der name der Datei.
std::string Wort(argv[1]);
if (word.vergleichen(0, 11, “css-tricks:”) == 0) {
std::cout<<Wort;
}
}
return 0;
}
Universal-Windows-Plattform (UWP)

Auf dem Universal-Windows-Plattform verwenden, können Sie das Paket manifestieren, um registrieren Sie die benutzerdefinierte URI-und die Universal-link (App-URI-Handler).

Benutzerdefinierte URI

Fügen Sie eine Protokoll-Erklärung in das Paket.appxmanifest:

Protokoll-Erklärung im Paket.appxmanifest

Das gleiche kann erreicht werden, in code:

<Extensions>
<uap:Extension Category=”windows.Protokoll”>
<uap:Protokoll Name=”css-tricks” DesiredView=”default”>
<uap:DisplayName>CSS-Tricks</uap:DisplayName>
</uap:Protokoll>
</uap:Extension>
</Extensions>

…und dieses kann nun bearbeitet werden innerhalb der app.

protected override void OnActivated(IActivatedEventArgs args) {
base.OnActivated(args);
if (args.Art == ActivationKind.Protocol) {
var e = args als ProtocolActivatedEventArgs;
System.Diagnostik.Debug.WriteLine(e.Uri.AbsoluteUri);
}
}
// In App.xaml.h
virtual void OnActivated(Windows::ApplicationModel::Aktivierung::IActivatedEventArgs^ e) override;

// In App.xaml.cpp
void App::OnActivated(Windows::ApplicationModel::Aktivierung::IActivatedEventArgs ^ e) {
if (e->Art == Windows::ApplicationModel::Aktivierung::ActivationKind::Protocol) {
auto-args = (ProtocolActivatedEventArgs^)e;
auto url = args->Uri->AbsoluteUri;
}
}
Universal-Verknüpfungen (App-URI)

App-URIs werden nur unterstützt, in der Microsoft Edge-browser. Sie funktionieren nicht in Internet Explorer, Chrome oder Firefox. App-URIs, die auch eine Paket-Eintrag, der ähnlich wie die benutzerdefinierte URI. Es ist nicht verfügbar in der Benutzeroberfläche von Visual Studio-Code-2017. Das Paket ist.appxmanifest Einträge sind fast die gleichen:

<Extensions>
<uap3:Extension Category=”windows.appUriHandler”>
<uap3:AppUriHandler>
<uap3:Host Name=”css-tricks.com” />
</uap3:AppUriHandler>
</uap3:Extension>
</Extensions>

Wenn uap3 ist nicht verfügbar, es kann Hinzugefügt werden, um das Paket-tag, wo uap wird auch definiert:

xmlns:uap3=”http://schemas.microsoft.com/appx/manifest/uap/windows10/3″

App-URI ist ein relativ neues feature von Windows und vielen UWP-Projekte ältere windows-Versionen als die minimale version. Möglicherweise müssen Sie bump, dass bis um diese Funktion unterstützt.

Genau wie iOS, die website braucht, um zu überprüfen, die domain-Inhaberschaft für diese Funktion. Das kann getan werden, indem er eine Datei mit dem mime-type application/json an der Wurzel Ihrer website, wie https://css-tricks.com/windows-app-web-link oder https://css-tricks.com/.well-known/windows-app-web-link über https mit dem Inhalt:

{
“packageFamilyName”: “YourPackageFamilyNameHere”,
“Pfade”: [“*”],
“excludePaths”: [“/keine/*”, “https://cdn.css-tricks.com/robot.txt”]
}

Um das Paket Familien-Namen führen Sie das folgende Powershell und suchen Sie nach Ihren package-Pfad:

Get-AppxPackage

Die Handhabung der App-URIs erfordert den gleichen code wie benutzerdefinierten URIs auf Windows. Durch design, alle Sie tun müssen ist, finden Sie in der Protokoll-Feld in der angegebenen URI und schreiben Sie die entsprechende Logik.

Genau wie iOS, Windows-Benutzer haben die Wahl, Sie zu deaktivieren, öffnen von apps. Bietet Windows-registry-Einstellungen zu zwingen, apps zu öffnen (zum testen verwendet), und auch ein validator tool (befindet sich unter ” %windir%system32AppHostRegistrationVerifier.exe), um zu überprüfen, ob die oben genannten Einstellungen korrekt sind.

Android
Benutzerdefinierte URI

Android unterstützt benutzerdefinierten URIs von Anfang an. Diese kann getan werden, mit code. In AndroidManifest.xml hinzufügen:

<Aktivität android:name=”.CustomUriActivity”>
<intent-filter>
<action android:name=”android.Absicht.Aktion.VIEW” />
<Kategorie android:name=”android.Absicht.Kategorie.STANDARD” />
<Kategorie android:name=”android.Absicht.Kategorie.BROWSABLE” />
<data android:scheme=”css-tricks” />
</intent-filter>
</activity>

Die Kategorie STANDARD ist, um sicherzustellen, dass es ist keine Handlung des Benutzers erforderlich, um es zu aktivieren. BROWSABLE ist sichergestellt, dass die benutzerdefinierten URIs arbeiten im browser.

Diese können dann behandelt werden, in der CustomUriActivity.java auf die Schöpfung:

SHARE
Previous articleUnbenutzt
Next articleOngebruikte