Activer les applications pour les sites web à l’aide de gestionnaires d’URI d’application
Les applications pour sites web associent votre application à un site web afin que lorsque quelqu’un ouvre un lien vers votre site web, votre application est lancée au lieu d’ouvrir le navigateur. Si votre application n’est pas installée, votre site web s’ouvre dans le navigateur comme d’habitude. Les utilisateurs peuvent approuver cette expérience, car seuls les propriétaires de contenu vérifiés peuvent s’inscrire à un lien. Les utilisateurs pourront vérifier tous leurs liens web-à-application inscrits en accédant aux paramètres > Apps > Apps pour les sites web.
Important
À compter de la mise à jour de Windows 10 Creators et dans toutes les versions de Windows 11, les liens pris en charge cliqués dans Microsoft Edge Legacy lancent l’application correspondante. Les liens pris en charge cliqués dans les navigateurs pris en charge (par exemple, Microsoft Edge Chromium, Firefox, Internet Explorer, etc.) vous feront rester dans l'expérience de navigation.
Pour activer la liaison web-à-application, vous devez :
- Identifier les URI gérés par votre application dans le fichier manifeste
- Fichier JSON qui définit l’association entre votre application et votre site web. avec le nom de famille du package d’application à la même racine hôte que la déclaration de manifeste de l’application.
- Gérez l’activation dans l’application.
S’inscrire pour gérer les liens http et https dans le manifeste de l’application
Votre application doit identifier les URI des sites web qu’elle gère. Pour ce faire, ajoutez l’inscription de l’extension Windows.appUriHandler au fichier manifeste de votre application Package.appxmanifest.
Par exemple, si l’adresse de votre site web est « msn.com », vous devez effectuer l’entrée suivante dans le manifeste de votre application :
<Applications>
<Application ... >
...
<Extensions>
<uap3:Extension Category="windows.appUriHandler">
<uap3:AppUriHandler>
<uap3:Host Name="msn.com" />
</uap3:AppUriHandler>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
La déclaration ci-dessus enregistre votre application pour gérer les liens de l’hôte spécifié. Si votre site web a plusieurs adresses (par exemple : m.example.com, www.example.com, and example.com), ajoutez une entrée <uap3:Host Name=... />
distincte à l’intérieur du <uap3:AppUriHandler>
pour chaque adresse.
Associer votre application et votre site web à un fichier JSON
Pour vous assurer que seule votre application peut ouvrir du contenu sur votre site web, incluez le nom de famille de package de votre application dans un fichier JSON situé à la racine du serveur web ou dans le répertoire connu du domaine. Cela signifie que votre site web donne son consentement pour que les applications répertoriées ouvrent du contenu sur votre site. Vous trouverez le nom de la famille de packages dans la section Packages du concepteur de manifeste d’application.
Important
Le fichier JSON ne doit pas avoir de suffixe de fichier .json.
Créez un fichier JSON (sans l’extension de fichier .json) nommé windows-app-web-link et fournissez le nom de la famille de packages de votre application. Par exemple:
[{
"packageFamilyName" : "Your app's package family name, e.g MyApp_9jmtgj1pbbz6e",
"paths" : [ "*" ],
"excludePaths" : [ "/news/*", "/blog/*" ]
}]
Windows crée une connexion https à votre site web et recherche le fichier JSON correspondant sur votre serveur web.
Caractères génériques
L’exemple de fichier JSON ci-dessus illustre l’utilisation de caractères génériques. Les caractères génériques vous permettent de prendre en charge une grande variété de liens avec un nombre réduit de lignes de code. La liaison web-à-application prend en charge deux types de caractères génériques dans le fichier JSON :
générique | Description |
---|---|
* | Représente n’importe quelle sous-chaîne |
? | Représente un caractère unique |
Par exemple, étant donné "excludePaths" : [ "/news/*", "/blog/*" ]
dans l’exemple ci-dessus, votre application prend en charge tous les chemins d’accès qui commencent par l’adresse de votre site web (par exemple, msn.com), sauf ceux sous /news/
et /blog/
.
msn.com/weather.html sera pris en charge, mais pas msn.com/news/topnews.html.
Plusieurs applications
Si vous avez deux applications que vous souhaitez lier à votre site web, listez les deux noms de famille de packages d’applications dans votre windows-app-web-link fichier JSON. Les deux applications peuvent être prises en charge. L’utilisateur sera présenté avec un choix qui est le lien par défaut si les deux sont installés. S’ils souhaitent modifier le lien par défaut ultérieurement, ils peuvent le modifier dans Paramètres > Apps for Websites. Les développeurs peuvent également modifier le fichier JSON à tout moment et voir la modification dès le même jour, mais pas plus tard que huit jours après la mise à jour.
[{
"packageFamilyName": "Your apps's package family name, e.g MyApp_9jmtgj1pbbz6e",
"paths": [ "*" ],
"excludePaths" : [ "/news/*", "/blog/*" ]
},
{
"packageFamilyName": "Your second app's package family name, for example, MyApp2_8jmtgj2pbbz6e",
"paths": [ "/example/*", "/links/*" ]
}]
Pour offrir la meilleure expérience à vos utilisateurs, utilisez des chemins d’accès d’exclusion pour vous assurer que le contenu en ligne uniquement est exclu des chemins pris en charge dans votre fichier JSON.
Les chemins d’accès exclus sont vérifiés en premier et s’il existe une correspondance, la page correspondante est ouverte avec le navigateur au lieu de l’application désignée. Dans l'exemple ci-dessus, '/news/*' inclut toutes les pages sous ce chemin tandis que '/news*' (sans barre oblique après 'news') inclut tous les chemins commençant par 'news' tels que 'newslocal/', 'newsinternational/', etc.
Gérer les liens lors de l'activation pour établir un lien vers le contenu
Accédez à App.xaml.cs dans la solution Visual Studio de votre application, et dans OnActivated(), ajoutez la gestion du contenu lié. Dans l’exemple suivant, la page ouverte dans l’application dépend du chemin d’URI :
protected override void OnActivated(IActivatedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
...
}
// Check ActivationKind, Parse URI, and Navigate user to content
Type deepLinkPageType = typeof(MainPage);
if (e.Kind == ActivationKind.Protocol)
{
var protocolArgs = (ProtocolActivatedEventArgs)e;
switch (protocolArgs.Uri.AbsolutePath)
{
case "/":
break;
case "/index.html":
break;
case "/sports.html":
deepLinkPageType = typeof(SportsPage);
break;
case "/technology.html":
deepLinkPageType = typeof(TechnologyPage);
break;
case "/business.html":
deepLinkPageType = typeof(BusinessPage);
break;
case "/science.html":
deepLinkPageType = typeof(SciencePage);
break;
}
}
if (rootFrame.Content == null)
{
// Default navigation
rootFrame.Navigate(deepLinkPageType, e);
}
// Ensure the current window is active
Window.Current.Activate();
}
Important
Veillez à remplacer la logique finale if (rootFrame.Content == null)
par rootFrame.Navigate(deepLinkPageType, e);
comme indiqué dans l’exemple ci-dessus.
Tester dans un outil de validation local
Vous pouvez tester la configuration de votre application et de votre site web en exécutant l’outil de vérificateur d’inscription de l’hôte d’application disponible dans :
%windir%\system32\AppHostRegistrationVerifier.exe
Testez la configuration de votre application et de votre site web en exécutant cet outil avec les paramètres suivants :
AppHostRegistrationVerifier.exenom d’hôte packagefamilyname filepath
- Nom d’hôte : Votre site web (par exemple, microsoft.com)
- Nom de famille du package (PFN) : le PFN de votre application
- Chemin d’accès au fichier : fichier JSON pour la validation locale (par exemple, C :\SomeFolder\windows-app-web-link)
Si l’outil ne retourne rien, la validation fonctionne sur ce fichier lors du chargement. S’il existe un code d’erreur, il ne fonctionnera pas.
Vous pouvez activer la clé de Registre suivante pour forcer la correspondance des chemins d’accès pour les applications à chargement latéral dans le cadre de la validation locale :
HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\CurrentVersion\ AppModel\SystemAppData\YourApp\AppUriHandlers
Nom de clé : ForceValidation
, Valeur : 1
Testez-le : validation web
Fermez votre application pour vérifier que l’application est activée lorsque vous cliquez sur un lien. Ensuite, copiez l’adresse de l’un des chemins pris en charge dans votre site web. Par exemple, si l’adresse de votre site web est « msn.com », et que l’un des chemins d’accès de support est « path1 », vous utilisez http://msn.com/path1
Vérifiez que votre application est fermée. Appuyez sur touche Windows + R pour ouvrir la boîte de dialogue Exécuter et coller le lien dans la fenêtre. Votre application doit se lancer au lieu du navigateur web.
En outre, vous pouvez tester votre application en la lançant à partir d’une autre application à l’aide de l’API LaunchUriAsync. Vous pouvez également utiliser cette API pour tester sur les téléphones.
Si vous souhaitez suivre la logique d’activation du protocole, définissez un point d’arrêt dans le gestionnaire d’événements OnActivated.
Conseils pour les gestionnaires d'URI des applications
Ces conseils vous aideront à tirer le meilleur parti de la fonctionnalité AppUriHandlers :
- Veillez à spécifier uniquement les liens que votre application peut gérer.
- Répertoriez tous les hôtes que vous allez prendre en charge. Notez que www.example.com and example.com sont des hôtes différents.
- Les utilisateurs peuvent choisir l’application qu’ils préfèrent gérer les sites web dans Paramètres.
- Votre fichier JSON doit être chargé sur un serveur https.
- Si vous devez modifier les chemins que vous souhaitez prendre en charge, vous pouvez republier votre fichier JSON sans republier votre application. Les utilisateurs verront les modifications en 1 à 8 jours.
- Toutes les applications chargées en parallèle avec AppUriHandlers auront des liens validés pour l’hôte lors de l’installation. Vous n’avez pas besoin d’avoir un fichier JSON chargé pour tester la fonctionnalité.
- Cette fonctionnalité fonctionne chaque fois que votre application est une application UWP lancée avec LaunchUriAsync ou une application de bureau Windows lancée avec ShellExecuteEx. Si l’URL correspond à un gestionnaire d’URI d’application inscrit, l’application est lancée au lieu du navigateur.
Contenu connexe
Windows developer