Dela via


Hantera filaktivering i en Windows-app

Din app kan registrera sig för att bli standardhanterare för en viss filtyp. Både Windows-skrivbordsprogram och WinUI-appar kan registreras som standardfilhanterare. Om användaren väljer din app som standardhanterare för en viss filtyp aktiveras appen när den typen av fil startas.

Vi rekommenderar att du bara registrerar dig för en filtyp om du förväntar dig att hantera alla filstarter för den typen av fil. Om din app bara behöver använda filtypen internt behöver du inte registrera dig för att vara standardhanterare. Om du väljer att registrera dig för en filtyp måste du ge slutanvändaren de funktioner som förväntas när appen aktiveras för den filtypen. En bildvisningsapp kan till exempel registreras för att visa en .jpg fil. Mer information om filassociationer finns i Riktlinjer för filtyper och URI:er.

De här stegen visar hur du registrerar dig för en anpassad filtyp, .alsdk, och hur du aktiverar din app när användaren startar en .alsdk-fil.

Anmärkning

I Windows är vissa URI:er och filnamnstillägg reserverade för användning av inbyggda appar och operativsystemet. Försök att registrera din app med en reserverad URI eller filnamnstillägg ignoreras. Se Reserverade URI-schemanamn och filtyper för en alfabetisk lista över URI-scheman som du inte kan registrera för dina appar eftersom de antingen är reserverade eller förbjudna.

Viktiga API:er

Följande API:er används i det här avsnittet:

Steg 1: Ange tilläggspunkten i paketmanifestet

Appen tar endast emot aktiveringshändelser för filnamnstilläggen som anges i paketmanifestet. Så här anger du att appen hanterar filerna med .alsdk tillägget.

  1. I Solution Explorer dubbelklickar du på package.appxmanifest för att öppna manifestdesignern. Välj fliken Deklarationer och i listrutan Tillgängliga deklarationer väljer du Filtypsassociationer och klickar sedan på Lägg till. Mer information om identifierare som används av filassociationer finns i Programmatiska identifierare .

    Här är en kort beskrivning av vart och ett av de fält som du kan fylla i manifestdesignern:

Fält Beskrivning
Visningsnamn Ange visningsnamnet för en grupp med filtyper. Visningsnamnet används för att identifiera filtypen i Ange standardprogramKontrollpanelen.
Logotyp Ange den logotyp som används för att identifiera filtypen på skrivbordet och i Ange standardprogramKontrollpanelen. Om ingen logotyp har angetts används programmets lilla logotyp.
Informationstips Ange informationstipset för en grupp med filtyper. Den här verktygstipstexten visas när användaren hovrar på ikonen för en fil av den här typen.
Namn Välj ett namn för en grupp med filtyper som delar samma visningsnamn, logotyp, informationstips och redigeringsflaggor. Välj ett gruppnamn som kan förbli detsamma för appuppdateringar. Observera Namnet måste vara i små bokstäver.
Typ av innehåll Ange MIME-innehållstypen, till exempel bild/jpeg, för en viss filtyp. Viktig information om tillåtna innehållstyper: Här är en alfabetisk lista över MIME-innehållstyper som du inte kan ange i paketmanifestet eftersom de antingen är reserverade eller förbjudna: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
Filtyp Ange vilken filtyp som ska registreras, föregås av en punkt, till exempel ".jpeg". Reserverade och förbjudna filtyper: Se Reserverade URI-schemanamn och filtyper för en alfabetisk lista över filtyper för inbyggda appar som du inte kan registrera för dina WinUI-appar eftersom de antingen är reserverade eller förbjudna.
  1. Ange alsdk som Namn.
  2. Ange .alsdk som filtyp.
  3. Ange "bilder\Icon.png" som logotyp.
  4. Tryck på Ctrl+S för att spara ändringen till package.appxmanifest.

Stegen ovan lägger till ett tilläggselement som det här i paketmanifestet. Kategorin windows.fileTypeAssociation anger att appen hanterar filer med .alsdk tillägget.

      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="alsdk">
            <uap:Logo>images\icon.png</uap:Logo>
            <uap:SupportedFileTypes>
              <uap:FileType>.alsdk</uap:FileType>
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
      </Extensions>

Steg 2: Lägg till rätt ikoner

Appar som blir standard för en filtyp får sina ikoner visade på olika platser i hela systemet. Dessa ikoner visas till exempel i:

  • Fönsterutforskarens objektvy, snabbmenyer och menyfliksområdet
  • Kontrollpanelen för standardprogram
  • Filväljare
  • Sökresultat på startskärmen

Inkludera en 44x44-ikon med projektet så att logotypen kan visas på dessa platser. Matcha utseendet på appens panellogotyp och använd appens bakgrundsfärg i stället för att göra ikonen transparent. Låt logotypen sträcka sig till kanten utan utfyllnad. Testa dina ikoner på vita bakgrunder. Mer information om ikoner finns i Riktlinjer för panel- och ikontillgångar .

Steg 3: Hantera den aktiverade händelsen

Händelsehanteraren OnFileActivated tar emot alla filaktiveringshändelser.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Count
       // The name of the first file is args.Files[0].Name
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
    // TODO: Handle file activation.
    auto numberOfFilesReceived{ args.Files().Size() };
    auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
    // TODO: Handle file activation
    // The number of files received is args->Files->Size
    // The name of the first file is args->Files->GetAt(0)->Name
}

Anmärkning

När du startar via Filkontrakt kontrollerar du att knappen Tillbaka tar användaren tillbaka till skärmen som startade appen och inte till appens tidigare innehåll.

Anmärkning

I en WinUI-app i App.OnLaunched (eller faktiskt när som helst) kan du anropa (AppInstance.GetActivatedEventArgs) för att hämta den aktiverade händelsen args och kontrollera dem för att avgöra hur appen aktiverades. Mer information om livscykelskillnader mellan UWP- och WinUI-appar finns i Migrering av funktioner för programlivscykel .

Vi rekommenderar att du skapar en ny XAML-ram för varje aktiveringshändelse som öppnar en ny sida. På så sätt innehåller inte navigeringsryggstacken för den nya XAML-ramen något tidigare innehåll som appen kan ha i det aktuella fönstret när den pausas. Om du bestämmer dig för att använda en enda XAML-ram för start och för filkontrakt bör du rensa sidorna i ramens navigeringsjournal innan du går till en ny sida.

När appen startas via filaktivering bör du överväga att inkludera användargränssnitt som gör att användaren kan gå tillbaka till appens översta sida.

Anmärkningar

De filer som du får kan komma från en ej betrodd källa. Vi rekommenderar att du verifierar innehållet i en fil innan du vidtar åtgärder för den.