Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Vyžaduje se balení. Rozšíření windows.appUriHandler používané v této funkci vyžaduje aplikaci v balíčku – buď plný balíček MSIX, nebo řídký balíček (balení s externím umístěním). Pokud je vaše aplikace aktuálně rozbalená, musíte jí nejprve udělit identitu balíčku. Pokyny najdete v tématu Udělení identity pro rozbalenou aplikaci. Informace o zpracování vlastních myapp:// schémat identifikátorů URI v rozbalené aplikaci najdete v tématu Zpracování aktivace identifikátoru URI .
Aplikace pro weby přidružují vaši aplikaci k webu, takže když někdo otevře odkaz na váš web, spustí se aplikace místo otevření prohlížeče. Pokud vaše aplikace není nainstalovaná, web se otevře v prohlížeči obvyklým způsobem. Uživatelé mohou důvěřovat této platformě, protože k odkazu se mohou zaregistrovat pouze ověření vlastníci obsahu. Uživatelé budou moct zkontrolovat všechny svoje registrované odkazy z webu do aplikace tak, že přejdou na Nastavení > Aplikace > Aplikace pro webové stránky.
Důležité
Počínaje aktualizací Windows 10 Creators a ve všech verzích Windows 11 se odkazy podporované v Microsoft Edge Legacy, na které bylo kliknuto, spustí odpovídající aplikaci. Podporované odkazy, na které kliknete v podporovaných prohlížečích (například Microsoft Edge Chromium, Firefox, Internet Explorer atd.), vás udrží v aktuálním prohlížecím prostředí.
Pokud chcete povolit propojení webových aplikací, budete muset:
- Identifikace identifikátorů URI, které bude vaše aplikace zpracovávat v souboru manifestu
- Soubor JSON, který definuje přidružení mezi vaší aplikací a webem. s názvem rodiny balíčků aplikace v témže kořenovém adresáři hostitelského systému jako deklarace manifestu aplikace.
- Proveďte aktivaci v aplikaci.
Registrace pro zpracování odkazů HTTP a HTTPS v manifestu aplikace
Vaše aplikace potřebuje identifikovat identifikátory URI webů, které bude zpracovávat. Uděláte to tak, že přidáte registraci rozšíření Windows.appUriHandler do souboru manifestu vaší aplikace Package.appxmanifest.
Pokud je adresa vašeho webu například "msn.com", v manifestu aplikace byste udělali následující položku:
<Applications>
<Application ... >
...
<Extensions>
<uap3:Extension Category="windows.appUriHandler">
<uap3:AppUriHandler>
<uap3:Host Name="msn.com" />
</uap3:AppUriHandler>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
Výše uvedená deklarace zaregistruje vaši aplikaci pro zpracování odkazů ze zadaného hostitele. Pokud má váš web více adres (například m.example.com, www.example.com, and example.com), přidejte do každé adresy samostatnou <uap3:Host Name=... /> položku <uap3:AppUriHandler> .
Přidružení aplikace a webu k souboru JSON
Pokud chcete zajistit, aby obsah na vašem webu mohl otevřít jenom vaše aplikace, zahrňte název rodiny balíčků vaší aplikace do souboru JSON umístěného v kořenovém adresáři webového serveru nebo v dobře známém adresáři v doméně. To značí, že váš web dává souhlas s aplikacemi uvedeným v seznamu, aby otevíral obsah na vašem webu. Název rodiny balíčků najdete v části Balíčky v návrháři manifestu aplikace.
Důležité
Soubor JSON by neměl mít příponu souboru .json.
Vytvořte soubor JSON (bez přípony souboru .json) s názvem windows-app-web-link a zadejte název rodiny balíčků vaší aplikace. Například:
[{
"packageFamilyName" : "Your app's package family name, e.g MyApp_9jmtgj1pbbz6e",
"paths" : [ "*" ],
"excludePaths" : [ "/news/*", "/blog/*" ]
}]
Windows vytvoří připojení https k vašemu webu a vyhledá odpovídající soubor JSON na vašem webovém serveru.
Podpora subdomény
Pokud manifest aplikace obsahuje hlavní doménu (například example.com) i subdomény se zástupnými výjimkou (například *.example.com), musíte do souboru JSON přidat allowSubdomains pole, abyste povolili propojení subdomény. Bez tohoto pole se odkazy na subdomény otevřou v prohlížeči místo vaší aplikace.
[{
"packageFamilyName" : "Your app's package family name, e.g MyApp_9jmtgj1pbbz6e",
"paths" : [ "*" ],
"excludePaths" : [ "/news/*", "/blog/*" ],
"allowSubdomains" : true
}]
Pokud je allowSubdomains nastaven na true, odkazy na subdomény, jako je subdomain.example.com/path, se ve vaší aplikaci otevřou místo v prohlížeči.
Zástupné znaky
Výše uvedený příklad souboru JSON ukazuje použití zástupných znaků. Zástupné čáry umožňují podporovat širokou škálu odkazů s menším počtem řádků kódu. Propojení webu s aplikací podporuje dva druhy zástupných znaků v souboru JSON.
| Zástupný znak | Description |
|---|---|
| * | Představuje libovolný podřetězec. |
| ? | Představuje jeden znak. |
Například ve výše uvedeném "excludePaths" : [ "/news/*", "/blog/*" ] příkladu bude vaše aplikace podporovat všechny cesty, které začínají adresou vašeho webu (například msn.com), s výjimkou těch, které jsou pod /news/ a /blog/.
msn.com/weather.html bude podporována, ale msn.com/news/topnews.html nebude podporováno.
Více aplikací
Pokud máte dvě aplikace, které chcete propojit s webem, uveďte oba názvy rodin balíčků aplikací v souboru JSON pro Windows-app-web-link . Obě aplikace je možné podporovat. Uživateli se zobrazí volba, která je výchozím odkazem, pokud jsou obě nainstalované. Pokud chtějí později změnit výchozí odkaz, můžou ho změnit v > Nastavení aplikací pro weby. Vývojáři také můžou soubor JSON kdykoli změnit a zobrazit změnu na stejný den, ale nejpozději do osmi dnů po aktualizaci.
[{
"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/*" ]
}]
Poznámka:
Pokud vaše aplikace potřebují podporovat subdomény, přidejte "allowSubdomains": true do každé položky aplikace v souboru JSON.
Pokud chcete uživatelům poskytnout co nejlepší prostředí, použijte cesty vyloučení, abyste měli jistotu, že je obsah jenom online vyloučený z podporovaných cest v souboru JSON.
Nejprve se kontrolují vyloučené cesty, a pokud je nalezena shoda, odpovídající stránka se otevře v prohlížeči namísto určené aplikace. V předchozím příkladu zahrnuje '/news/*' všechny stránky pod touto cestou, zatímco '/news*' (bez lomítka za 'news') zahrnuje jakékoliv cesty pod 'news*', jako například 'newslocal/', 'newsinternational/' atd.
Zpracování odkazů při aktivaci za účelem propojení s obsahem
Přejděte na App.xaml.cs v řešení sady Visual Studio vaší aplikace a v onActivated() přidejte zpracování propojeného obsahu. V následujícím příkladu závisí stránka otevřená v aplikaci na cestě URI:
protected override void OnActivated(IActivatedEventArgs e)
{
// In WinUI 3, Window.Current is always null. Store your Window in App.Window.
Frame rootFrame = App.Window?.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
App.Window?.Activate();
}
Důležité
Ujistěte se, že nahradíte konečnou logiku if (rootFrame.Content == null) s rootFrame.Navigate(deepLinkPageType, e);, jak je znázorněno v příkladu výše.
Testování v místním ověřovacím nástroji
Konfiguraci aplikace a webu můžete otestovat spuštěním nástroje pro ověření registrace hostitele aplikace, který je k dispozici v:
%windir%\system32\AppHostRegistrationVerifier.exe
Otestujte konfiguraci aplikace a webu spuštěním tohoto nástroje s následujícími parametry:
AppHostRegistrationVerifier.exenázev hostitele packagefamilyname cesta k souboru
- Název hostitele: Váš web (například microsoft.com)
- Název rodiny balíčků (PFN): PFN vaší aplikace
- Cesta k souboru: Soubor JSON pro místní ověření (například C:\SomeFolder\windows-app-web-link)
Pokud nástroj nic nevrátí, bude ověření fungovat na daném souboru při nahrání. Pokud existuje kód chyby, nebude fungovat.
V rámci místního ověřování můžete povolit následující klíč registru, který vynutí porovnávání cest pro neoficiálně nainstalované aplikace:
HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\CurrentVersion\ AppModel\SystemAppData\YourApp\AppUriHandlers
Název klíče: ForceValidation Hodnota: 1
Test it: Ověření webu
Zavřete aplikaci a ověřte, že je aplikace aktivovaná po kliknutí na odkaz. Potom zkopírujte adresu jedné z podporovaných cest na vašem webu. Pokud je adresa vašeho webu například "msn.com" a jedna z cest podpory je "path1", použili byste http://msn.com/path1
Ověřte, že je vaše aplikace zavřená. Stisknutím klávesy Windows + R otevřete dialogové okno Spustit a vložte odkaz do okna. Aplikace by se měla spustit místo webového prohlížeče.
Kromě toho můžete aplikaci otestovat tak, že ji spustíte z jiné aplikace pomocí rozhraní LaunchUriAsync API. Toto rozhraní API můžete použít také k testování na telefonech.
Pokud chcete postupovat podle logiky aktivace protokolu, nastavte zarážku v obslužné rutině události OnActivated .
Tipy pro AppUriHandlers
Tyto tipy vám pomůžou získat maximum z funkce AppUriHandlers:
- Nezapomeňte zadat jenom odkazy, které vaše aplikace dokáže zpracovat.
- Uveďte všechny hostitele, které budete podporovat. Všimněte si, že www.example.com and example.com jsou různí hostitelé.
- Uživatelé si můžou zvolit, kterou aplikaci preferují pro zpracování webů v Nastavení.
- Soubor JSON se musí nahrát na server https.
- Pokud potřebujete změnit cesty, které chcete podporovat, můžete znovu publikovat soubor JSON bez opětovného publikování aplikace. Uživatelé uvidí změny za 1 až 8 dnů.
- Všechny aplikace nainstalované z jiných zdrojů s AppUriHandlers budou mít ověřené odkazy na server během instalace. K otestování funkce nemusíte mít nahraný soubor JSON.
- Tato funkce funguje vždy, když je aplikace pro UPW spuštěná pomocí LaunchUriAsync nebo desktopové aplikace pro Windows spuštěná pomocí ShellExecuteEx. Pokud adresa URL odpovídá zaregistrované obslužné rutině identifikátoru URI aplikace, spustí se aplikace místo prohlížeče.
Související obsah
Ukázkový projekt z webu do aplikace
Windows developer