Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
Csomagolás szükséges. Az windows.appUriHandler ebben a funkcióban használt bővítményhez csomagolt alkalmazásra van szükség – teljes MSIX-csomagra vagy ritka csomagra (külső hellyel rendelkező csomagolás). Ha az alkalmazás jelenleg ki van csomagolva, először meg kell adnia neki egy csomagdentitást. Útmutatásért lásd: Identitás megadása csomagolatlan alkalmazásnak. Az egyéni myapp:// URI-sémák csomagolatlan alkalmazásokban való kezeléséről az URI aktiválásának kezelése című témakörben olvashat.
A Webhelyekhez készült alkalmazások társítják az alkalmazást egy webhelyhez, így amikor valaki megnyitja a webhelyére mutató hivatkozást, az alkalmazás a böngésző megnyitása helyett elindul. Ha az alkalmazás nincs telepítve, a webhely a szokásos módon nyílik meg a böngészőben. A felhasználók megbízhatnak ebben a felhasználói élményben, mert csak az ellenőrzött tartalomtulajdonosok regisztrálhatnak egy hivatkozásra. A felhasználók a Beállítások > Alkalmazások > Webhelyekhez készült alkalmazások menüpontban ellenőrizhetik az összes regisztrált webhelyről az alkalmazásra mutató hivatkozást.
Fontos
A Windows 10 Alkotók frissítésétől és a Windows 11 összes verziójában a Microsoft Edge Legacy böngészőben a támogatott hivatkozásokra kattintva a megfelelő alkalmazás indul el. A támogatott böngészőkben megnyitott (például Microsoft Edge Chromium, Firefox, Internet Explorer stb.) támogatott hivatkozások a böngészési élményt fenntartják.
A web-alkalmazás csatolásának engedélyezéséhez a következőkre van szükség:
- Az alkalmazás által a jegyzékfájlban kezelt URI-k azonosítása
- Egy JSON-fájl, amely meghatározza az alkalmazás és a webhely közötti társításokat. Az alkalmazáscsomag neve az alkalmazásjegyzék deklaráció gazdagép gyökerével azonos.
- Az aktiválás kezelése az alkalmazásban.
Regisztráció http- és https-hivatkozások kezeléséhez az alkalmazásjegyzékben
Az alkalmazásnak azonosítania kell az általa kezelt webhelyek URI-jait. Ehhez adja hozzá a Windows.appUriHandler bővítményregisztrációt az alkalmazás Package.appxmanifest jegyzékfájljához.
Ha például a webhely címe "msn.com", a következő bejegyzést kell beírnia az alkalmazás jegyzékfájljában:
<Applications>
<Application ... >
...
<Extensions>
<uap3:Extension Category="windows.appUriHandler">
<uap3:AppUriHandler>
<uap3:Host Name="msn.com" />
</uap3:AppUriHandler>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
A fenti deklaráció regisztrálja az alkalmazást a megadott gazdagép hivatkozásainak kezeléséhez. Ha a webhely több címmel (például m.example.com, www.example.com, and example.com) rendelkezik, akkor adjon hozzá egy külön <uap3:Host Name=... /> bejegyzést az <uap3:AppUriHandler> egyes címekhez.
Alkalmazás és webhely társítása JSON-fájllal
Annak érdekében, hogy csak az alkalmazás nyisson meg tartalmat a webhelyén, adja meg az alkalmazás csomagcsaládjának nevét egy, a webkiszolgáló gyökérkönyvtárában vagy a tartomány jól ismert könyvtárában található JSON-fájlban. Ez azt jelzi, hogy a webhely hozzájárul ahhoz, hogy a felsorolt alkalmazások tartalmakat nyissanak meg a webhelyen. A csomagcsalád nevét az alkalmazásjegyzék-tervező Csomagok szakaszában találja.
Fontos
A JSON-fájl nem rendelkezhet .json fájl utótagjával.
Hozzon létre egy windows-app-web-link nevű JSON-fájlt (a .json fájlkiterjesztés nélkül), és adja meg az alkalmazás csomagcsaládjának nevét. Például:
[{
"packageFamilyName" : "Your app's package family name, e.g MyApp_9jmtgj1pbbz6e",
"paths" : [ "*" ],
"excludePaths" : [ "/news/*", "/blog/*" ]
}]
A Windows https-kapcsolatot létesít a webhelyével, és megkeresi a megfelelő JSON-fájlt a webkiszolgálón.
Altartomány támogatása
Ha az alkalmazásjegyzék egy fő tartományt (például example.com) és helyettesítő altartományokat (például *.example.com) is tartalmaz, hozzá kell adnia a allowSubdomains mezőt a JSON-fájlhoz az altartomány-csatolás engedélyezéséhez. E mező nélkül az altartományokra mutató hivatkozások az alkalmazás helyett a böngészőben nyílnak meg.
[{
"packageFamilyName" : "Your app's package family name, e.g MyApp_9jmtgj1pbbz6e",
"paths" : [ "*" ],
"excludePaths" : [ "/news/*", "/blog/*" ],
"allowSubdomains" : true
}]
Ha allowSubdomains be van állítva true, az altartományokra mutató hivatkozások, például subdomain.example.com/path a böngésző helyett helyesen nyílnak meg az alkalmazásban.
Helyettesítő karakterek
A fenti JSON-fájl példája a helyettesítő karakterek használatát mutatja be. A helyettesítő karakterek lehetővé teszik, hogy kevesebb kódsort tartalmazó hivatkozások széles skáláját támogassa. A web-alkalmazás összekapcsolása kétféle helyettesítő karaktert támogat a JSON-fájlban:
| Helyettesítő | Leírás |
|---|---|
| * | Bármely alsztringet jelöl |
| ? | Egyetlen karaktert jelöl |
A fenti példában az Ön alkalmazása támogatja a webhely címével kezdődő összes elérési utat (például msn.com), kivéve azokat, amelyek a /news/ és /blog/ alatti útvonalak alatt találhatók.
msn.com/weather.html támogatott, de nem msn.com/news/topnews.html.
Több alkalmazás
Ha két olyan alkalmazással rendelkezik, amelyeket a webhelyére szeretne csatolni, a windows-app-web-link JSON-fájlban listázhatja az alkalmazáscsomag családneveit. Mindkét alkalmazás támogatott. A felhasználónak fel kell kínálni egy választási lehetőséget arra vonatkozóan, hogy melyik legyen az alapértelmezett hivatkozás, ha mindkét hivatkozás telepítve van. Ha később módosítani szeretnék az alapértelmezett hivatkozást, módosíthatják azt a Webhelybeállítások > alkalmazásokban. A fejlesztők bármikor módosíthatják a JSON-fájlt, és a módosítást már ugyanazon a napon, de legkésőbb nyolc nappal a frissítés után láthatják.
[{
"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/*" ]
}]
Megjegyzés:
Ha az alkalmazásoknak támogatniuk kell az altartományokat, adja hozzá a "allowSubdomains": true minden alkalmazásbejegyzéshez a JSON fájlban.
Annak érdekében, hogy a felhasználók számára a lehető legjobb élményt nyújthassa, használjon kizárási útvonalakat annak biztosítására, hogy a csak online tartalom ne szerepeljen a JSON-fájl támogatott elérési útjai között.
A kizárási útvonalakat először a rendszer ellenőrzi, és ha van egyezés, a megfelelő lap a böngészővel nyílik meg a kijelölt alkalmazás helyett. A fenti példában a "/news/*" magában foglalja az elérési út alatti oldalakat, míg a "/news*" (ahol a "news" végén nincs perjel) kiterjed minden, a "news*" alatt található útvonalra, például a "newslocal/", "newsinternational/" és így tovább.
Aktiválási hivatkozások kezelése a tartalomhoz vezető hivatkozásokként
Navigáljon a App.xaml.cs fájlba az alkalmazás Visual Studio-megoldásában, és az OnActivated() metódusban adjon hozzá kezelést a csatolt tartalomhoz. Az alábbi példában az alkalmazásban megnyitott oldal az URI elérési útjától függ:
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();
}
Fontos
Cserélje le a if (rootFrame.Content == null) logikát rootFrame.Navigate(deepLinkPageType, e); logikára, a fenti példában látható módon.
Tesztelés helyi érvényesítő eszközben
Az alkalmazás és a webhely konfigurációját az alkalmazás gazdagépregisztrációs ellenőrző eszközének futtatásával tesztelheti, amely a következő helyen érhető el:
%windir%\system32\AppHostRegistrationVerifier.exe
Tesztelje az alkalmazás és a webhely konfigurációját az eszköz futtatásával a következő paraméterekkel:
AppHostRegistrationVerifier.exehostname packagefamilyname filepath
- Állomásnév: A webhely (például microsoft.com)
- Csomagcsalád neve (PFN): Az alkalmazás PFN-címe
- Fájl elérési útja: A helyi ellenőrzés JSON-fájlja (például C:\SomeFolder\windows-app-web-link)
Ha az eszköz nem ad vissza semmit, a feltöltéskor az ellenőrzés működni fog a fájlon. Ha hibakód van, az nem fog működni.
Engedélyezheti a következő beállításkulcsot, hogy a helyi ellenőrzés részeként kényszerítse az elérési út egyeztetését az oldaltöltésű alkalmazásokhoz:
HKCU\Software\Classes\LocalSettings\Software\Microsoft\Windows\CurrentVersion\ AppModel\SystemAppData\YourApp\AppUriHandlers
Kulcsnév: ForceValidation Érték: 1
Tesztelés: Webes ellenőrzés
Zárja be az alkalmazást annak ellenőrzéséhez, hogy az alkalmazás aktiválva van-e, amikor egy hivatkozásra kattint. Ezután másolja ki a webhely egyik támogatott útvonalának címét. Ha például a webhely címe "msn.com", és az egyik támogatási útvonal a "path1", akkor a http://msn.com/path1 használja.
Ellenőrizze, hogy az alkalmazás bezárva van-e. A Windows Billentyű + R billentyűkombinációval nyissa meg a Futtatás párbeszédpanelt, és illessze be a hivatkozást az ablakba. Az alkalmazásnak a webböngésző helyett kell elindulnia.
Emellett tesztelheti az alkalmazást úgy is, hogy elindítja azt egy másik alkalmazásból a LaunchUriAsync API használatával. Ezzel az API-val telefonokon is tesztelhet.
Ha követni szeretné a protokollaktiválási logikát, állítson be egy töréspontot az OnActivated eseménykezelőben.
AppUriHandlers tippek
Ezek a tippek segítenek a legtöbbet kihozni az AppUriHandlers szolgáltatásból:
- Ügyeljen arra, hogy csak az alkalmazás által kezelhető hivatkozásokat adja meg.
- Sorolja fel az összes gazdagépet, amelyet támogatni fog. Vegye figyelembe, hogy www.example.com és example.com különböző gazdagépeket.
- A felhasználók a Beállításokban választhatják ki, hogy melyik alkalmazás kezelje a webhelyeket.
- A JSON-fájlt fel kell tölteni egy https-kiszolgálóra.
- Ha módosítania kell a támogatni kívánt elérési utakat, az alkalmazás újbóli közzététele nélkül újra közzéteheti a JSON-fájlt. A felhasználók 1-8 napon belül láthatják a módosításokat.
- Az összes külső forrásból telepített, AppUriHandlers funkcionalitással rendelkező alkalmazás az érvényesített hivatkozásokkal rendelkezik a gazdagéphez a telepítés során. A funkció teszteléséhez nem kell JSON-fájlt feltöltenie.
- Ez a funkció akkor működik, ha az alkalmazás egy LaunchUriAsync használatával indított UWP-alkalmazás, vagy a ShellExecuteEx használatával indított Windows asztali alkalmazás. Ha az URL-cím egy regisztrált alkalmazás URI-kezelőjének felel meg, az alkalmazás a böngésző helyett indul el.
Kapcsolódó tartalom
Windows developer