Sdílet prostřednictvím


Zpracování aktivace identifikátoru URI

Zjistěte, jak zaregistrovat aplikaci, aby se stala výchozí obslužnou rutinou pro název schématu URI (Uniform Resource Identifier). Desktopové aplikace pro Windows i aplikace univerzální platformy Windows (UPW) se můžou zaregistrovat jako výchozí obslužná rutina pro název schématu identifikátoru URI. Pokud uživatel zvolí vaši aplikaci jako výchozí obslužnou rutinu pro název schématu identifikátoru URI, aplikace se aktivuje při každém spuštění tohoto typu identifikátoru URI.

Doporučujeme zaregistrovat pouze název schématu identifikátoru URI, pokud očekáváte, že pro tento typ schématu identifikátorů URI zpracujete všechna spuštění identifikátoru URI. Pokud se rozhodnete zaregistrovat název schématu identifikátoru URI, musíte koncovému uživateli poskytnout funkce, které se očekávají při aktivaci aplikace pro toto schéma identifikátoru URI. Například aplikace, která se registruje pro schéma URI mailto:, by se měla otevřít novou e-mailovou zprávu, aby uživatel mohl napsat nový e-mail. Další informace o přidružení identifikátorů URI najdete v tématu Soubory, složky a knihovny.

Tyto kroky ukazují, jak zaregistrovat název vlastního schématu identifikátoru URI, alsdk://a jak aktivovat aplikaci, když uživatel spustí identifikátor URI alsdk://.

Důležitá rozhraní API

V tomto tématu se používají následující rozhraní API:

Poznámka

Ve Windows jsou určité identifikátory URI a přípony souborů vyhrazené pro použití integrovanými aplikacemi a operačním systémem. Pokusy o registraci aplikace s rezervovaným identifikátorem URI nebo příponou souboru budou ignorovány. Podívejte se na názvy schémat rezervovaných identifikátorů URI a typy souborů pro abecední seznam schémat identifikátorů URI, která se nedají zaregistrovat pro vaše aplikace, protože jsou buď rezervované, nebo zakázané.

Krok 1: Určení bodu rozšíření v manifestu balíčku

Aplikace přijímá aktivační události pouze pro názvy schémat URI uvedené v manifestu balíčku. Takto označíte, že vaše aplikace zpracovává schéma URI alsdk.

  1. V průzkumníku řešení poklikáním na package.appxmanifest otevřete návrháře manifestu. Vyberte kartu Deklarace a v rozevíracím seznamu Dostupné deklarace vyberte Protokol a potom klikněte na Přidat.

    Tady je stručný popis jednotlivých polí, která můžete vyplnit návrhářem manifestu protokolu (podrobnosti najdete v manifestu balíčku AppX):

Pole Popis
logo Zadejte logo, které se používá k identifikaci názvu schématu URI v Nastavit výchozí programy na Ovládacím panelu . Pokud není zadáno žádné logo, použije se malé logo aplikace.
zobrazovaný název Zadejte zobrazovaný název, který určí název schématu identifikátoru URI v Nastavit výchozí programy v ovládacích panelech .
název Zvolte název schématu identifikátoru URI.
Poznámka Název musí být ve všech malých písmenech.
Rezervované a zakázané typy souborů Podívejte se na rezervovaná schémata URI a typy souborů pro abecední seznam schémat URI, která nelze registrovat pro aplikace pro Windows, protože jsou buď rezervovaná, nebo zakázaná.
spustitelný soubor Určuje výchozí spustitelný soubor pro protokol. Pokud není zadaný, použije se spustitelný soubor aplikace. Pokud je zadán, řetězec musí mít délku 1 až 256 znaků, musí končit znakem ".exe" a nesmí obsahovat tyto znaky: >, <, :, ", |, ?, nebo *. Pokud je zadáno, použije se také vstupního bodu. Pokud není specifikován vstupní bod, použije se vstupní bod definovaný pro aplikaci.
vstupního bodu Určuje úlohu, která zpracovává rozšíření protokolu. Obvykle se jedná o plně kvalifikovaný název oboru názvů typu Windows Runtime. Pokud není zadaný, použije se vstupní bod aplikace.
úvodní stránka Webová stránka, která zpracovává bod rozšiřitelnosti.
skupina prostředků Značka, kterou můžete použít k seskupení aktivací rozšíření pro účely správy prostředků.
Požadované zobrazení (pouze pro Windows) Zadejte pole požadovaného zobrazení označující velikost místa, které okno aplikace potřebuje při spuštění pro název schématu identifikátoru URI. Možné hodnoty pro Desired View jsou Výchozí, Nepoužij, Použij Polovinu, Použij Vícenebo Použij Minimum.
Poznámka Windows při určování konečné velikosti okna cílové aplikace bere v úvahu několik různých faktorů, například předvolbu zdrojové aplikace, počet aplikací na obrazovce, orientaci obrazovky atd. Nastavení požadovaného zobrazení nezaručuje konkrétní chování okna cílové aplikace.
Rodina mobilních zařízení: Desired View není podporováno na rodině mobilních zařízení.
  1. Zadejte images\Icon.png jako logo .

  2. Zadejte SDK Sample URI Scheme jako zobrazovaný název .

  3. Jako název zadejte alsdk.

  4. Stisknutím ctrl+S uložte změnu na package.appxmanifest.

    Tím se do manifestu balíčku přidá element Extension, jako je tento. Kategorie windows.protocol označuje, že aplikace zpracovává URI schéma alsdk.

    <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>

Krok 2: Přidání správných ikon

Aplikace, které se stanou výchozími pro schéma URI, mají své ikony zobrazené na různých místech v celém systému, například v ovládacím panelu Výchozí programy. K tomuto účelu můžete do projektu zahrnout ikonu 44x44. Sladit vzhled loga dlaždice aplikace a místo průhlednosti ikony použít barvu pozadí vaší aplikace. Logo se rozšíří na okraj, aniž byste ho odsadili. Otestujte ikony na bílých pozadích. Další podrobnosti o ikonách najdete v ikonách a logech aplikací.

Krok 3: Zpracování aktivované události

Poznámka

V aplikaci WinUI můžete v App.OnLaunched (nebo ve skutečnosti kdykoli) volat (AppInstance.GetActivatedEventArgs), abyste získali argumenty aktivované události a zkontrolovali je pro určení způsobu aktivace aplikace. Další informace o rozdílech životního cyklu UWP a aplikací WinUI najdete v tématu migrace funkcí životního cyklu aplikace.

V aplikacích pro UWP obslužná rutina události OnActivated přijímá všechny aktivační události. Vlastnost Kind označuje typ aktivační události. Tento příklad je nastavený tak, aby zpracovával události aktivace protokolu.

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
   }
}

Poznámka

Při spuštění prostřednictvím kontraktu protokolu se ujistěte, že tlačítko Zpět uživatele vrátí na obrazovku, která spustila aplikaci, a ne na předchozí obsah aplikace.

Následující kód programově spustí aplikaci prostřednictvím jeho identifikátoru URI:

   // Launch the URI
   var uri = new Uri("alsdk:");
   var success = await Windows.System.Launcher.LaunchUriAsync(uri)

Další podrobnosti o tom, jak spustit aplikaci pomocí identifikátoru URI, najdete v tématu Spuštění výchozí aplikace pro identifikátor URI.

Doporučujeme, aby aplikace pro každou aktivační událost, která otevře novou stránku, vytvořily nový XAML rámec. Tímto způsobem navigační backstack pro nový rámec XAML Frame nebude obsahovat žádný předchozí obsah, který by aplikace mohla mít v aktuálním okně při pozastavení. Aplikace, které se rozhodnou použít jeden xaml Frame pro spouštěcí a souborové kontrakty, by měly vymazat stránky v Frame navigačním deníku před přechodem na novou stránku.

Při spuštění prostřednictvím aktivace protokolu by aplikace měly zvážit zahrnutí uživatelského rozhraní, které uživateli umožní vrátit se na horní stránku aplikace.

Poznámky

Jakákoli aplikace nebo web může používat váš název schématu URI, včetně škodlivých. Takže všechna data, která získáte v identifikátoru URI, můžou pocházet z nedůvěryhodného zdroje. Doporučujeme, abyste nikdy neprováděli trvalou akci na základě parametrů obdržených v identifikátoru URI. Například parametry identifikátoru URI je možné použít ke spuštění aplikace na stránku účtu uživatele, ale doporučujeme je nikdy použít k přímé úpravě účtu uživatele.

Poznámka

Pokud vytváříte nový název schématu identifikátoru URI pro vaši aplikaci, nezapomeňte postupovat podle pokynů v RFC 4395. Tím zajistíte, že vaše jméno splňuje standardy pro schémata identifikátorů URI.

Poznámka

Když se aplikace pro UPW spustí prostřednictvím kontraktu protokolu, ujistěte se, že tlačítko Zpět uživatele vrátí na obrazovku, která aplikaci spustila, a ne na předchozí obsah aplikace.

Doporučujeme, aby aplikace pro každou aktivační událost, která otevře nový cíl identifikátoru URI, vytvořily nový rámec XAML . Tímto způsobem navigační backstack pro nový rámec XAML Frame nebude obsahovat žádný předchozí obsah, který by aplikace mohla mít v aktuálním okně při pozastavení.

Pokud se rozhodnete, že chcete, aby vaše aplikace používaly jeden XAML Frame pro kontrakty spuštění a protokolu, vymažte stránky v navigačním záznamu Frame, před přechodem na novou stránku. Při spuštění prostřednictvím kontraktu protokolu zvažte zahrnutí uživatelského rozhraní do vašich aplikací, které uživateli umožní vrátit se zpět na začátek aplikace.