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.
Megtudhatja, hogyan regisztrálhat egy alkalmazást, hogy az legyen az egységes erőforrás-azonosító (URI) séma nevének alapértelmezett kezelője. A WinUI-alkalmazások regisztrálhatnak egy URI-sémanév alapértelmezett kezelőjeként. Ha a felhasználó az alkalmazást választja az URI-sémanév alapértelmezett kezelőjeként, az alkalmazás minden alkalommal aktiválódik, amikor az adott URI-típus elindul.
Azt javasoljuk, hogy csak akkor regisztráljon egy URI-sémanévre, ha az adott URI-sémához tartozó összes URI-indítást kezelni szeretné. Ha úgy dönt, hogy regisztrál egy URI-sémanévre, meg kell adnia a végfelhasználónak azokat a funkciókat, amelyek az adott URI-séma alkalmazásának aktiválásakor várhatók. Például egy alkalmazásnak, amely regisztrál a mailto: URI séma nevére, meg kell nyitnia egy új e-mail üzenetet, hogy a felhasználó új e-mailt írjon. Az URI-társításokról további információt a Fájlok, mappák és tárak című témakörben talál.
Ezek a lépések bemutatják, hogyan regisztrálhat egyéni URI-sémanévre, alsdk://és hogyan aktiválhatja az alkalmazást, amikor a felhasználó elindít egy alsdk:// URI-t.
Fontos API-k
Ebben a témakörben a következő API-kat használjuk:
- Windows.ApplicationModel.Activation.ProtocolActivatedEventArgs
- Windows.UI.Xaml.Application.OnActivated (A Windows alkalmazás aktiválódási eseménye)
- AppInstance.GetActivatedEventArgs
Megjegyzés:
Windows rendszerben bizonyos URI-k és fájlkiterjesztések a beépített alkalmazások és az operációs rendszer számára vannak fenntartva. Az alkalmazás fenntartott URI-val vagy fájlkiterjesztéssel való regisztrálására tett kísérletek figyelmen kívül lesznek hagyva. Tekintse meg fenntartott URI-sémák nevét és fájltípusait azoknak az URI-sémáknak a betűrendes listájához, amelyeket nem tud regisztrálni az alkalmazásokhoz, mert azok fenntartottak vagy tiltottak.
1. lépés: Adja meg a bővítménypontot a csomagjegyzékben
Az alkalmazás csak a csomagjegyzékben felsorolt URI-sémák neveihez fogad aktiválási eseményeket. Így jelezheti, hogy az alkalmazás kezeli az alsdk URI-séma nevét.
A Megoldáskezelőbenkattintson duplán a package.appxmanifest fájlra a jegyzéktervező megnyitásához. Válassza a Deklarációk lapot, majd az Elérhető deklarációk legördülő listában válassza a Protokoll lehetőséget, majd kattintson a Hozzáadás gombra.
Íme egy rövid leírás az egyes mezőkről, amelyeket kitölthet a protokoll jegyzéktervezőjében (részletekért tekintse meg az AppX-csomagjegyzéket ):
| szakterület | Leírás |
|---|---|
| Embléma | Adja meg a logót, amely az URI-séma nevének azonosítására szolgál a Alapértelmezett programok beállítása a Vezérlőpulton. Ha nincs megadva embléma, a rendszer az alkalmazás kis emblémáját használja. |
| Megjelenített név | Adja meg a megjelenítési nevet az URI-séma nevének az azonosítására a Alapértelmezett programok beállítása-ban a Vezérlőpultban. |
| Név | Válasszon nevet az Uri-sémának. |
| Megjegyzés A névnek kisbetűkben kell lennie. | |
| Fenntartott és tiltott fájltípusok A Fenntartott URI-sémák nevei és fájltípusai azoknak az URI-sémáknak a betűrendes listáját ismertetik, amelyeket nem lehet regisztrálni a Windows-alkalmazásokra, mert fenntartottak vagy tiltottak. | |
| végrehajtható | Meghatározza a protokoll alapértelmezett indító programját. Ha nincs megadva, a rendszer az alkalmazás végrehajtható fájlját használja. Ha meg van adva, a sztringnek 1 és 256 karakter közötti hosszúságúnak kell lennie, ".exe" végződésűnek kell lennie, és nem tartalmazhat ilyen karaktereket: >, , <:, ", |, ?, vagy *. Ha meg van adva, a belépési pont is használható. Ha a belépési pont nincs megadva, a rendszer az alkalmazáshoz definiált belépési pontot használja. |
| Belépési pont | A protokollbővítményt kezelő feladatot adja meg. Ez általában egy Windows-futtatókörnyezet-típus teljes névtér-minősített neve. Ha nincs megadva, a rendszer az alkalmazás belépési pontját használja. |
| Kezdőlap | A bővíthetőségi pontot kezelő weblap. |
| Erőforráscsoport | A bővítményaktiválások erőforrás-kezelési célokra való csoportosítására használható címke. |
| Kívánt nézet (csak Windows rendszeren) | Adja meg a Kívánt nézet mezőt, amely jelzi az alkalmazás ablakának az URI-séma nevének elindításakor szükséges helyet. A Kívánt nézet lehetséges értékei az Alapértelmezett, a UseLess, a UseHalf, a UseMore vagy a UseMinimum. Jegyzet A Windows több különböző tényezőt is figyelembe vesz a célalkalmazás végső ablakméretének meghatározásakor, például a forrásalkalmazás előnyben részesítése, a képernyőn megjelenő alkalmazások száma, a képernyő tájolása stb. A Kívánt nézet beállítása nem garantálja a célalkalmazás adott ablakozási viselkedését. Mobileszköz-család: A kívánt nézet nem támogatott a mobileszköz-családban. |
Adja meg
images\Icon.pnglogóként.Adja meg a Megjelenítendő név
SDK Sample URI SchemeAdja meg
alsdk-t névként.A módosítás a package.appxmanifest fájlba való mentéséhez nyomja le a Ctrl+S billentyűkombinációt.
Ez hozzáad egy ilyen bővítményelemet a csomagjegyzékhez. A windows.protocol kategória azt jelzi, hogy az alkalmazás kezeli az
alsdkURI-séma nevét.
<Applications>
<Application Id= ... >
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="alsdk">
<uap:Logo>images\icon.png</uap:Logo>
<uap:DisplayName>SDK Sample URI Scheme</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
...
</Application>
</Applications>
2. lépés: A megfelelő ikonok hozzáadása
Az URI-séma alapértelmezett nevének minősülő alkalmazások ikonjai a rendszer különböző pontjain jelennek meg, például az Alapértelmezett programok vezérlőpulton. Tegyen be egy 44x44-es ikont a projekthez erre a célra. Egyezzen az alkalmazáscsempe emblémájának megjelenésével, és használja az alkalmazás háttérszínét az ikon áttetszővé tétele helyett. Az embléma a szegélyig terjedjen ki, és ne legyen rá párnázás. Tesztelje az ikonokat fehér háttéren. Az ikonjairól bővebb információt a alkalmazásikonok és emblémák alatt talál.
3. lépés: Az aktivált esemény kezelése
Megjegyzés:
WinUI-alkalmazásokban az App.OnLaunched alkalmazásban (vagy valójában bármikor) meghívhatja (AppInstance.GetActivatedEventArgs) az aktivált esemény argek lekéréséhez, és ellenőrizheti őket, hogy az alkalmazás hogyan lett aktiválva. További információért az UWP és a WinUI alkalmazások közötti életciklus-különbségekről lásd az alkalmazás életciklus-funkciójának migrálását.
Az UWP-alkalmazásokban az OnActivated eseménykezelő minden aktiválási eseményt fogad. A Kind tulajdonság az aktiválási esemény típusát jelzi. Ez a példa protokollaktiválási események kezelésére van beállítva.
public partial class App
{
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Protocol)
{
ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;
// TODO: Handle URI activation
// The received URI is eventArgs.Uri.AbsoluteUri
}
}
}
void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs const& args)
{
if (args.Kind() == Windows::ApplicationModel::Activation::ActivationKind::Protocol)
{
auto protocolActivatedEventArgs{ args.as<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs>() };
// TODO: Handle URI activation
auto receivedURI{ protocolActivatedEventArgs.Uri().RawUri() };
}
}
void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs^ args)
{
if (args->Kind == Windows::ApplicationModel::Activation::ActivationKind::Protocol)
{
Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs^ eventArgs =
dynamic_cast<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs^>(args);
// TODO: Handle URI activation
// The received URI is eventArgs->Uri->RawUri
}
}
Megjegyzés:
Protokollszerződésen keresztül történő indításkor győződjön meg arról, hogy a Vissza gomb visszaviszi a felhasználót arra a képernyőre, amely elindította az alkalmazást, és ne az alkalmazás korábbi tartalmára.
Az alábbi kód programozott módon indítja el az alkalmazást az URI-ján keresztül:
// Launch the URI
var uri = new Uri("alsdk:");
var success = await Windows.System.Launcher.LaunchUriAsync(uri)
Az alkalmazások URI-val történő elindításáról további információt az URI alapértelmezett alkalmazásának elindítása című témakörben talál.
Javasoljuk, hogy az alkalmazások új XAML-keretet hozzanak létre minden olyan aktiválási eseményhez, amely új lapot nyit meg. Így az új XAML-keret navigációs háttérrendszere nem tartalmaz olyan korábbi tartalmat, amelyet az alkalmazás a felfüggesztéskor az aktuális ablakban tartalmazhatna. Azoknak az alkalmazásoknak, amelyek úgy döntenek, hogy egyetlen XAML-keretet használnak az indításhoz és a fájlszerződésekhez, törölniük kell a Keret navigációs napló lapjait, mielőtt új oldalra lépnek.
Protokollaktiválással történő indításkor az alkalmazásoknak fontolóra kell venniük a felhasználói felület használatát, amely lehetővé teszi, hogy a felhasználó visszatérjen az alkalmazás felső oldalára.
Megjegyzések
Bármely alkalmazás vagy webhely használhatja az URI-séma nevét, beleértve a rosszindulatúakat is. Az URI-ban kapott adatok tehát nem megbízható forrásból származhatnak. Javasoljuk, hogy soha ne végezzen állandó műveletet az URI-ban kapott paraméterek alapján. Például URI-paraméterekkel indíthatja el az alkalmazást egy felhasználó fióklapján, de azt javasoljuk, hogy soha ne használja őket közvetlenül a felhasználói fiók módosítására.
Megjegyzés:
Ha új URI-sémanevet hoz létre az alkalmazáshoz, mindenképpen kövesse az RFC 4395 útmutatóját. Ez biztosítja, hogy a neve megfeleljen az URI-sémák szabványainak.
Megjegyzés:
Amikor egy UWP-alkalmazás protokollszerződésen keresztül indul el, győződjön meg arról, hogy a Vissza gomb visszaviszi a felhasználót az alkalmazást elindító képernyőre, nem pedig az alkalmazás korábbi tartalmára.
Javasoljuk, hogy az alkalmazások hozzanak létre egy új XAML-Frame példányt minden aktiválási eseményre, amely új Uri-célt nyit meg. Így az új XAML-keret navigációs háttérrendszere nem tartalmaz olyan korábbi tartalmat, amelyet az alkalmazás a felfüggesztéskor az aktuális ablakban tartalmazhatna.
Ha úgy dönt, hogy egyetlen XAML-Keret-t szeretne használni az indítási és protokollszerződésekhez, törölje a Keret navigációs naplójának lapjait, mielőtt új lapra navigál. Protokollszerződésen keresztül történő indításkor fontolja meg a felhasználói felület használatát az alkalmazásokba, amelyek lehetővé teszik a felhasználó számára, hogy visszalépjen az alkalmazás tetejére.
Kapcsolódó tartalom
Windows developer