Hyperlinking Buiten het Web

0
13

Hyperlinks zijn de oudste en de meest populaire functie van de web. Het woord hypertext (dat is de ht in http/s): tekst met hyperlinks. De mogelijkheid om te koppelen aan andere mensen hypertext gemaakt op het web, een web — een set van gekoppelde pagina ‘ s. Deze fundamentele functie heeft de website een heel krachtig platform, en het is duidelijk dat de wereld van de apps moet deze functie. Alle moderne platformen ondersteunen het een manier om apps voor het registreren van een URI (aangepaste protocol) en ook zijn universele koppelingen (omgaan met web links in een app).

Laten we eens kijken waarom we zouden willen profiteren van deze functie en hoe om het te doen.

Waarom hebben de app contacten op alle?

Het maken van de Uri die apps kunt openen biedt een aantal unieke voordelen. Een URL bevat de gehele staat van de webpagina (vroeger voor de komst van Één Pagina Toepassingen (Sbz ‘ s) zwaar met JavaScript en zelfs in hen, het is een goede praktijk om het onderhouden van deze functionaliteit) of een web-applicatie en wordt het aangeraden om de routing in de toepassingen, zodat een URL navigatie is nooit gebroken. Url ‘s zijn toegestaan browsers om consistent is back en forward knoppen en laden en bookmark pagina’ s. En dingen zoals Google search afhankelijk van webpagina adressen en web toepassingen te navigeren gebruikers naar de juiste plaats. Het toestaan van applicaties voor het openen van Url ‘s biedt een manier om te linken inhoud en de functionaliteit in de toepassing van andere applicaties, websites en ook intern binnen de toepassing, zoals help/tutorial pagina’ s.

Weetjes! Desktop-applicaties hebben gehad hyperlinks, zelfs voordat het world wide web als een Hypercard op de Mac in 1987 en Windows Help in 1990. De revolutionaire ding over hyperlinks in de web is dat u kunt een koppeling van inhoud die is gemaakt door en eigendom van anderen. Dit concept van cross-app koppelen was niet populair in de traditionele platforms tot de opkomst van de smartphones.

App links op de commando-regel

Er is al een shell voor de commando-regel interface en ondersteunt het doorgeven van argumenten, het omleiden van de resultaten van de ene toepassing naar de andere, en zelfs scripting. Toch is de noodzaak voor het hebben van ondersteuning voor hyperlinks is het wenselijk om verschillende redenen:

  • Beveiliging: De command line script is te ingewikkeld om goed te krijgen. Het is zeer riskant om te verwachten dat gebruikers van technologie (die geen ontwikkelaars) om te begrijpen hoe om te ontsmetten een command line script en zorg ervoor dat het script niet per ongeluk oproepen iets, zoals rm -rf ~/Documenten. De commando-regel is niet van zand-doos en al het biedt een vermogen, het legt de verantwoordelijkheid van gebruikers en is gevoelig voor misbruik.
  • Browser ondersteuning: De browser kan de commando-regel interface. Het is gebouwd om te werken niet-vertrouwde code van een derde partij in een sandbox en dat niet kan worden verbroken. En, als we het niet respecteren van de regels van web-technologie, de app zou silo zelf van het Internet. Dat is te veel te verliezen.
  • Mobiel: In de wereld van mobile, touch toetsenbord is niet zo goed en intuïtief als de fysieke als die op de desktop. Daarom, zelfs als commando-regel aanwezig was, zou het zeer moeilijk zijn om te gebruiken. De kracht van de omleiding en koppelen is niet zo effectief als het is meer dan een toetsenbord op basis commando-regel. Een eenvoudiger oplossing, zoals URL is het wenselijk dat in deze context.
  • Staat: Theoretisch, de commando-regel interface kan een manier bieden om de aanvraag leverbaar in elke lidstaat. Maar, praktisch, het werd gebouwd voor een eigen doel: om de toepassing te starten voor het uitvoeren van een taak en vervolgens terug te keren met een code. Bovendien was de prioriteit door de Gui ‘ s in Windows en Mac. Veel toepassingen (zoals Microsoft Word en Adobe Photoshop) nooit had volwaardige opdrachtregel ondersteuning. Ze zijn niet eens aanwezig zijn in de omgevingsvariabele PATH en moet het volledige pad worden gelanceerd. Uri ‘ s zorgen voor een frisse kijk op het verbinden van informatie en functionaliteit tussen toepassingen. Ze zijn een veilige, moderne manier van inter-app communicatie, waar de gebruiker niet hoeft na te denken.

Het Koppelen Van Terminologie

Deep Link

Deep link is het concept waarbij een specifieke pagina/functionaliteit binnen de website/applicatie kan worden gekoppeld. Bijvoorbeeld, https://css-tricks.com/link/to/this/page is een deep-link voor deze pagina in de bredere https://css-tricks.com de link. In tegenstelling tot het oppervlakkige links die open toepassingen, deep links openen van de applicatie in een bepaalde staat, met de doorgegeven gegevens in, klaar om geconsumeerd te worden. Aangepaste URI (hieronder beschreven) waren de eerste manieren om deep-linking binnen de app en “deep-linking” in veel contexten is nu synoniem met aangepaste URI, maar het kan ook betekenen dat de Universele koppelingen.

Aangepaste URI

Het web had altijd een bepaalde aangepaste Uri ‘ s die gelinkt zijn aan standaard toepassingen, zoals mailto:username@host.com en tel:1234567890 voor e-mail en telefoon, respectievelijk. Het was een voor de hand liggende keuze om dit uit te breiden en alle belangrijke platformen bieden een manier voor een app voor het registreren van een URI protocol — zoals css-tricks://<link details> — die open kunnen een diepe gekoppeld native applicatie. Het moet het inkapselen van de hele staat en voorzien van alle routing voordelen om de app te openen als het beschikbaar is op het systeem. Deze zorgen voor een goede interface voor inter-app communicatie als de toepassing al is geïnstalleerd en de wens is om het openen van de gebruiker aanbevolen toepassing (zoals een browser of e-mailclient) en implementeert de gewenste protocol.

Aangepaste Uri ‘ s zijn geweldig voor de klasse van toepassingen waar de gebruiker wil om een keuze van een app voor het uitvoeren van een bepaalde keuze, maar ze zijn niet geweldig voor de taak van het koppelen van de website van de native applicatie om de volgende redenen:

  • Installatie: in Tegenstelling tot het web, native apps nodig hebt installatie en, indien ze niet geïnstalleerd zijn, hebt u twee opties: stuurt de gebruiker naar de app store (die ook zorgt voor een aangepaste URI) of juist weer terug te vallen. Zowel deze taken vereisen een aanvullende code die de URI niet in te kapselen. De app store URI zou een ander, gescheiden, URI, die we nodig hebben om op te slaan. Daarnaast hebben we te detecteren of de app is geïnstalleerd, waarvoor navigeren naar de URI en de behandeling van de fout in de navigatie-verwant aan een 404 sinds het protocol is niet geregistreerd. Dit is niet zo eenvoudig als een anker-tag (<a href=”{URL}”></a>) en, daarom, is een frequente bron van ontwikkelaar klachten.
  • Het ontbreken van een centrale registratie: Zelfs als alles perfect recht, gebruikers kunnen nog steeds worden geworpen in een toepassing die ze niet zouden moeten zijn gekoppeld. In tegenstelling tot het DNS-systeem (hetgeen garant staat voor unieke domeinnamen), applicatie platformen niet beschikken over een centrale repository. Dus, meerdere apps kunnen registreren csstricks als een aangepaste URI. Nu, iemand anders kan ook inschrijven op dezelfde URI vindt als een app en als de andere toepassing is geïnstalleerd op het systeem in plaats van het gewenste, het kan lancering plaats. De vrijheid van een aangepaste URI voor de app selectie werkt tegen de zaak waar we willen altijd open voor een specifieke toepassing.
  • Derde Koppelen: het Geven van een aangepaste URI aan derden, omdat de problemen die we hebben behandeld hierboven is omslachtig en het verifiëren van hen is pijnlijk. Het is ook een nieuw protocol. Elke website heeft links naar inhoud op het web en het bijwerken van het geheel van het Internet is niet mogelijk. Het kan zelfs niet gewenst is voor SEO doeleinden.

Daarom, als we willen, geven de gebruiker de ervaring waar de app is de beste manier om inhoud te bekijken, aangepaste Uri ‘ s zijn niet de perfecte oplossing. Dit kan worden verminderd met smart app-banners tot op zekere hoogte, waar de banner zou worden weergegeven wanneer de browser krijgt de aangepaste URI en de app store link te identificeren van de toepassing. Maar dit zal niet altijd naadloos.

Weetjes! URI en Url ‘ s zijn enigszins verschillend per definitie, hoewel ze door elkaar gebruikt. URI staat voor Uniform Resource Identifier, wat betekent dat het bevat alles wat nodig is om een bron. URL (Uniform Resource Locator) is een speciaal type van URI, die het identificeert de bron op het web. Dus, technisch gezien, een web-adres is een URL, maar iets als csstricks:// zou slechts een URI.

Deze zijn allemaal mogelijk gebruik maken van gevallen waarin een aangepaste URI kan het zinvol zijn:

  • U moet een URI die vele derde partij client apps kunnen registreren. Stel dat je een git:// in uw app en de gebruiker ‘ s favoriete git client kan registreren dat URI en kloon van de repo wanneer op de link wordt geklikt.
  • U hoeft niet een volledig functionele website.
  • U moet een URI-dat is gemakkelijk voor gebruikers om te onthouden.
  • Je bent bereid om alle rand van zaken met betrekking tot de navigatie.

U kunt het gebruik van aangepaste Uri ‘ s in parallel met de Universele link die we zullen behandelen volgende en ze kunnen profiteren van het blootstellen van de aangepaste URL voor inter-app communicatie tijdens het verlaten van de Universele koppeling voor het speciale geval van een web-app navigatie. Android officieel oproepen aangepaste Uri ‘ s deep-links.

Controle stromen voor Aangepaste URI, Universele Koppeling en Instant Apps

Universele koppeling, App Link of App URI

De oplossing voor het probleem van web-to-app omleiding kan worden opgelost met de Universele koppeling (zoals dat heet in de Mac en iOS), een App Link (zoals dat heet in Android) of App-URI (zoals dat heet in Windows UWP), die verschillende namen voor hetzelfde concept. Dit gaat uit van de logica dat elke website nodig heeft om te schrijven in het detecteren van apps geïnstalleerd, start u de juiste pagina ‘s en omgaan met de navigatie, storingen in het geval van aangepaste Url’ s. Het is zeer vergelijkbaar met de smart app-banners in de zin dat je nodig hebt om een app store link naar de toepassing op uw website voor controle, maar het verwijdert alle redundantie. Sinds de bestaande http(s) URL bevat al de hele staat, het registreren van de aangepaste URI is overbodig. De oorspronkelijke URL kan zelf ga naar de app met de website, die een fallback ervaring in geval van de toepassing niet is geïnstalleerd.

Zodra u zich registreert uw app met een universele koppeling, als de app is geïnstalleerd, de OS gaat naar het Internet om erachter te komen het instellen van de links die de app ondersteunt. Wanneer een van deze links geklikt, is de native app wordt gelanceerd in plaats van de browser. Volledige aanpak van de ondersteuning is nu beschikbaar in de toepassing waar een meer op maat gesneden ervaring kan worden verstrekt vallen terug naar de browser als de toepassing niet is geïnstalleerd. Op een belangrijk onderscheid met universele koppelingen is dat ze van invloed zijn op regelmatige browsen en daarom de OS providers houden dan onder strakke slot en sleutel.

Een paar goede use cases voor de Universele links zijn:

  • Heb je een volledig functionele website voor een terugval.
  • Het gewenste debiet voor de gebruikers van de website naar de app.
  • Je hebt al een heleboel van karma door het hebben van de inhoud van uw website gekoppeld rond het web.

Directe Link of Uitgestelde Deep Link

Uitgestelde deep links de ontbrekende stuk aan de deep-links indien de gebruiker het gaat om de app te installeren wanneer de koppeling wordt geopend. De gebruikers kunnen worden doorgestuurd naar de app store en de app store zorgt voor het behoud van de context als de app is uiteindelijk gestart na de installatie. Dit zorgt voor continuïteit in het geval waar een app is geïnstalleerd. Op dit moment is deze methode wordt alleen ondersteund door Android (Google Play Instant) en het is de optie waar u wilt dat de gebruikers van de app om de gewenste functionaliteit. De hyperlink systeem op het web is naadloos en op een link te klikken wordt u naar de bestemming vrijwel direct (hoewel een heleboel dingen gebeuren achter de schermen). Uitgestelde deep links dezelfde functionaliteit bieden voor de apps waar het klikken op een link kan de app downloaden en te starten met de juiste pagina, zodat alle taken op app-installatie zo naadloos mogelijk.

Je zou kunnen overwegen het gebruik van instant links als:

  • U moet de gebruikers om de app te gebruiken en niet de website, zelfs niet als ze afkomstig zijn van de browser (behalve voor de zeldzame gevallen waar zij niet over voldoende schijfruimte of hebben zich deze functie uit te schakelen om bandbreedte te besparen).
  • Uw belangrijkste pagina ‘ s zijn altijd up-to-date in uw toepassing.
  • OK, altijd gebruik maken van hen. Met de extra SEO voordelen van Google gooit in voor instant apps, er geen reden is om “instant” apps voor een app die Universele koppelingen.

Nu hebben we een overzicht van wat elke term betekent, laten we eens kijken hoe we het kunnen gaan over het maken van deze op specifieke platforms.

Het opzetten van toepassing hyperlinks

MacOS en iOS
Aangepaste URI

Het registreren van een aangepaste URI in MacOS en iOS is zeer eenvoudig. In Xcode, ga naar de Info.plist-bestand van het project en selecteer de optie URL-Typen. Maak een item van het type URL-schema ‘s in het bestand waar u kunt alles toevoegen van de URL-schema’ s die u wilt ondersteunen.

Opmerking: Het standaard URL-Id ingevuld door Xcode in de URL-Typen is optioneel.

URL-Schema in Xcode

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

Voor MacOS, zult u gebeld worden naar de AppDelegate waar u kunt negeren de functie:

func toepassing(_ toepassing: NSApplication, url ‘ s openen: [URL]) {
// Selecteer de URL in de lijst van URL te openen
laat url = urls[0];
// Log de volledige URL
NSLog(“%@”, de url.absoluteString)
}
-(void)toepassing:(NSApplication *)toepassing openURLs:(NSArray<NSURL *> *)url ‘ s, {
NSLog(@”%@”, url ‘ s[0].absoluteString);
}

In iOS, de functie om dezelfde oproep in AppDelegate is:

func toepassing(_ app: UIApplication, open url: URL, opties: [UIApplicationOpenURLOptionsKey : Elke] = [:]) -> Bool {
NSLog(“%@”, de url.absoluteString)
return true
}
-(BOOL)toepassing:(UIApplication *)app openURL:(NSURL *)url opties: (NSDictionary<UIApplicationOpenURLOptionsKey,id> *)opties {
NSLog(@”%@”, de url.absoluteString);
return true;
}

Het type URL in al deze gevallen bevat de gebruikelijke URL stukken, zoals de pad, de query en de zoekparameters.

Universele Links

Universele koppelingen worden niet ondersteund in mac Os. Om universele links op iOS, moet u zijn geregistreerd bij het Apple Developer-Programma of een Apple Developer Enterprise Program lid. Universele links op iOS zijn onderdeel van een breder concept van gekoppelde domeinen waar de geheimen van de website, zoals opgeslagen gegevens, kan worden geopend vanuit de app en Apple niet toestaat regelmatig Xcode gebruikers nog met universele koppelingen (als je het per ongeluk inschakelen van de functionaliteit van de App-ID, maar niet in de rechten, bereid zijn om een validatie fout: FOUT ITG-90046: “Ongeldige Code Ondertekenen van Rechten”).

Weetjes! Universele koppelingen zijn een nieuw concept, en veel van de Mac-en Windows-desktop-applicaties zijn gebouwd met hun eigen netwerk stack, geen gebruik maken van de app store en kan zijn jaren geleden uitgebracht. Daarom is de OS niet de controle die nodig zijn om alle toepassingen te volgen van de Universele koppeling concept en open de app. Apple heeft ervoor gekozen om geen implementeren Universele Koppelingen in MacOS nog, terwijl op Windows werken ze alleen in de Microsoft Rand van de browser en andere UWP apps (die maken gebruik van dezelfde technologie).

Om te registreren voor de Universele links op iOS, moet u de volgende dingen doen:

  1. Activeer de App-ID op de Apple Developer website om de functie voor gekoppelde domeinen.
  2. Voeg de bijbehorende domeinen aan de rechten bestand.
  3. Het toevoegen van een apple-app-site-vereniging bestand op het web domein tot het verschaffen van eigendom verificatie voor de toepassing.
  4. Voeg code toe aan de verwerking van klikken op de Universele koppelingen.

De stappen 1 en 2 kunnen worden uitgevoerd samen in het tabblad Mogelijkheden op Xcode als u bent aangemeld en het juiste profiel gekozen (die van een Apple Developer-of Enterprise-account). De Xcode UI is een aanwijzing dat de beide items zijn voltooid.

Gekoppelde Domeinen in de Mogelijkheden sectie in Xcode

In de afbeelding hierboven, in Stap 2 is voltooid, terwijl in Stap 1 is in behandeling. U kunt klikken op het uitroepteken te vinden voor het probleem. Het is belangrijk om de prefix van het domein met applinks: (die aangeeft dat je nodig hebt app koppelt functionaliteit; hetzelfde wordt gebruikt voor gedeelde referenties). Dit geeft aan dat de App Link vermogen is ingeschakeld.

De bovenstaande stappen kunnen ook worden uitgevoerd individueel.

Voor Stap 1, het inschakelen van Gekoppelde Domeinen in de App-ID-gedeelte van de developer-website (weergegeven aan de onderkant van de afbeelding):

Apple Developer website in te schakelen gekoppelde domeinen

Voor Stap 2 voeg het volgende toe aan de rechten bestand:

Rechten plist

<key>com.apple.ontwikkelaar.verband-domeinen</key>
<array>
<string>applinks:css-tricks.com</string>
</array>

Nu voor Stap 3, het hosten van een vereniging bestand apple-app-site-vereniging als https://css-tricks.com/apple-app-site-association met het mime-type application/json met de volgende JSON-gegevens van de root van uw website:

{
“applinks”: {
“apps”: [],
“details”: {
“ABCDEFGHIJ.com.ccs-trucs.mobiel: {
“paden”: [
“*”
]
}
}
}
}

Het bovenstaande fragment geeft de app met ID ABCDEFGHIJ.com.ccs-trucs.mobiele en biedt toegang tot alle aanvragen op de https://css-tricks.com domein. Merk op dat dit werkt met http https, maar wordt niet ondersteund. U kunt ook gebruik maken van een alternatieve locatie, zoals https://css-tricks.com/.well-known/apple-app-site-association voor dit. Deze URL is de voorkeur omdat het kan voorkomen dat de Android, iOS en UWP vereniging bestanden in een veilige aparte map kan niet per ongeluk worden verwijderd.

Weetjes! Universele koppelingen niet garanderen dat de app wordt geopend. Als de gebruiker terug gaat naar de website van de kop in iOS, het BESTURINGSSYSTEEM beslist standaard naar de website van dan af totdat de gebruiker besluit om de app te gebruiken door te klikken op de kop weer vanuit Safari.

Voor Stap 4 voeg de volgende code om de app:

func toepassing(_ toepassing: UIApplication, blijven userActivity: NSUserActivity, restorationHandler: @ontsnappen ([Elk]?) -> Inhoud) -> Bool {
als userActivity.activityType == NSUserActivityTypeBrowsingWeb {
laat url = userActivity.webpageURL!
print(url.absoluteString)
}
return true
}
-(BOOL)toepassing:(UIApplication *)toepassing continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
als(userActivity.activityType == NSUserActivityTypeBrowsingWeb) {
NSLog(@”%@”, userActivity.webpageURL.absoluteString);
}
return true;
}

Smart app-banners op iOS zijn veel eenvoudiger en kan worden toegevoegd via een simpele HTML meta-tag in de head sectie als deze:

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

Ze bellen u dezelfde methode als Aangepaste Uri ‘ s die we eerder.

Windows (Traditioneel)

Op de traditionele Windows-platform (Win32/.De NETTO), de aangepaste URI (de zogenaamde Aangepaste Pluggable Protocol-Handler) is de enige functie wordt ondersteund. Het toevoegen van een aangepaste URI in Windows betreft het toevoegen van een registervermelding in HKEY_CLASSES_ROOT. De volgende zal de app opent met het absolute pad opgegeven bij het klikken op een link naar de css-tricks://<tekst>. Door het gebruik van de command line, deze altijd wordt geopend in een nieuw exemplaar van de app en niet stuurt de URL naar de bestaande applicatie.

Registervermelding voor het verstrekken van de naam van de toepassing
Registervermelding voor het open-commando

Windows Register-Editor Versie 5.00

[HKEY_CLASSES_ROOTcss-tricks]
“URL-Protocol”=””
@=”CSS Trucs (naam Toepassing)”

[HKEY_CLASSES_ROOTcss-tricksshell]

[HKEY_CLASSES_ROOTcss-tricksshellopen]

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

De bovenstaande lanceert kladblok met de commando-regel argument dat overeenkomt met de URL geleverd. Wees ervan bewust dat Kladblok biedt geen ondersteuning voor aangepaste URI en zal niet weten wat te doen met de URL.

Deze gedragen zich is vergelijkbaar met het passeren van deze op de console en het programma moet ervoor zorgen dat het goed onderscheidt tussen het argument dat het een reguliere CLI of een aangepaste URI, zoals hier weergegeven:

naamruimte ConsoleApplication1 {
class Program {
static void Main(string[] args) {
if (args.Lengte > 0 && args[0].IndexOf(“css-tricks:”) == 0) {
Console.Schrijven(args[0]);
}
}
}
}
int main(int argc, char*argv[]) {
if (argc > 1) { // argv[0] is de naam van het bestand.
std::string word(argv[1]);
als (woord.vergelijk(0, 11, “css-tricks:”) == 0) {
std::cout<<word;
}
}
return 0;
}
Universele Windows-Platform (UWP)

Op de Universele Windows-Platform, kunt u gebruik maken van het pakket manifest te registreren zowel de aangepaste URI en de Universele koppeling (de zogenaamde App URI Handler).

Aangepaste URI

Toevoegen van een protocol verklaring in het pakket.appxmanifest:

Protocol Verklaring in het pakket.appxmanifest

Hetzelfde kan worden bereikt in de code:

<Extensions>
<uap:Uitbreiding Categorie=”windows.protocol”>
<uap:Protocol Name=”css-tricks” DesiredView=”default”>
<uap:DisplayName>CSS-Tricks</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>

…en dit kan nu worden verwerkt in de app.

protected override void OnActivated(IActivatedEventArgs args) {
base.OnActivated(args);
if (args.Soort == ActivationKind.Protocol) {
var e = args als ProtocolActivatedEventArgs;
Systeem.Diagnostiek.Debug.WriteLine(e.Uri.AbsoluteUri);
}
}
// In De App.xaml.h
virtual void OnActivated(Windows::ApplicationModel::Activering::IActivatedEventArgs^ e) voorrang;

// In App.xaml.cpp
void App::OnActivated(Windows::ApplicationModel::Activering::IActivatedEventArgs ^ e) {
als (e->Kind == Windows::ApplicationModel::Activering::ActivationKind::Protocol) {
auto args = (ProtocolActivatedEventArgs^)e;
automatische url = args->de Uri->AbsoluteUri;
}
}
Universele Koppelingen (App-URI)

App Uri ‘ s worden alleen ondersteund in Microsoft Rand browser. Ze werken niet in Internet Explorer, google Chrome of Firefox. App Uri ‘ s hebben ook een pakket soortgelijke vermelding van de aangepaste URI. Het is niet beschikbaar in de GEBRUIKERSINTERFACE van Visual Studio Code 2017. De verpakking.appxmanifest items zijn bijna hetzelfde:

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

Als uap3 is niet beschikbaar, het kan worden toegevoegd aan het Pakket tag waar uap is ook gedefinieerd:

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

App URI is een relatief nieuwe functie van Windows en vele UWP projecten zijn gericht op oudere versies van windows als de minimale versie. U moet misschien de bult in ter ondersteuning van deze functie.

Net als iOS, de website moet controleren of de eigenaar van het domein bent voor deze functie. Het kan worden gedaan door het organiseren van een bestand met het mime-type application/json in de root van uw website, zoals https://css-tricks.com/windows-app-web-link of https://css-tricks.com/.well-known/windows-app-web-link via https met de inhoud:

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

Om de pakket naam, voer je het volgende in Powershell en het zoeken naar uw pakket pad:

Get-AppxPackage

Behandeling App Uri ‘s vereist dezelfde code als aangepaste Uri’ s op Windows. Door het ontwerp, alles wat je hoeft te doen is zie het protocol veld in de opgegeven URI en schrijf de bijbehorende logica.

Net als iOS, Windows-gebruikers hebben de keuze voor het uitschakelen van het openen van apps. Windows-register-instellingen te dwingen apps te openen (voor het testen) en ook een validator tool (te vinden op %windir%system32AppHostRegistrationVerifier.exe) om te controleren of de bovenstaande instellingen correct zijn.

Android
Aangepaste URI

Android heeft ondersteund aangepaste Uri ‘ s vanaf het allereerste begin. Dit kan gedaan worden met een code. In AndroidManifest.xml toevoegen:

<activity android:name=”.CustomUriActivity”>
<intent-filter>
<action android:name=”android.opzet.actie.WEERGEVEN” />
<category android:name=”android.opzet.- categorie.STANDAARD” />
<category android:name=”android.opzet.- categorie.DOORZOEKBAAR” />
<gegevens android:scheme=”css-tricks” />
</intent-filter>
</activity>

De categorie STANDAARD is om ervoor te zorgen dat er geen actie van de gebruiker nodig is om het in te schakelen. DOORZOEKBAAR zorgt ervoor dat de aangepaste Uri ‘ s werken in de browser.

Dit kan vervolgens worden verwerkt in de CustomUriActivity.java over de schepping: