Arbeta med utskriftsmeddelanden i en UWP-enhetsapp

Important

Enhetsmetadata är inaktuella och tas bort i en framtida version av Windows. Information om hur du ersätter den här funktionen finns i Containermetadata för drivrutinspaket.

UWP-enhetsappar kan svara på dubbelriktade kommunikationshändelser (Bidi) som skickas från en v4-utskriftsdrivrutin. Den här artikeln introducerar utskriftsmeddelanden och visar hur C#-versionen av exemplet Utskriftsinställningar och utskriftsmeddelanden använder en bakgrundsaktivitet för att svara på utskriftsmeddelanden. Bakgrundsaktiviteten visar hur du sparar meddelandeinformation i det lokala appdatalagret, skickar brödrostaviseringar och uppdaterar en ruta och en notifikationssymbol. Mer information om UWP-enhetsappar i allmänhet finns i Meet UWP device apps.

C#-versionen av exemplet utskriftsinställningar och utskriftsmeddelanden visar appens bakgrundsdel (bakgrundsaktiviteten) i BackgroundTask-projektet . Koden för bakgrundsaktiviteten finns i filen PrintBackgroundTask.cs . Förgrundsappen, den helskärmsapp som kan startas från Start, finns i projektet DeviceAppForPrinters. Filen InkLevel.xaml.cs visar ett sätt att komma åt meddelandeinformation från förgrundsappen. För att arbeta med utskriftsmeddelanden använder exemplet skrivartilläggsbiblioteket i projektet PrinterExtensionLibrary . Skrivartilläggsbiblioteket är ett bekvämt sätt att komma åt skrivartilläggsgränssnitten för v4-utskriftsdrivrutinen. Mer information finns i översikten över biblioteket för skrivartillägg.

Kodexemplen som visas i den här artikeln baseras på C#-versionen av exemplet utskriftsinställningar och utskriftsmeddelanden . Det här exemplet är också tillgängligt i JavaScript och C++. Eftersom C++ kan komma åt COM direkt innehåller C++-versionen av exemplet inte kodbiblioteksprojekt. Ladda ned exemplen för att se de senaste versionerna av koden.

Med utskriftsaviseringar kan UWP-enhetsappen informera användaren om viktiga skrivarhändelser vid utskrift, till exempel pappersstopp, öppen skrivardörr, låga bläcknivåer eller utskriftsfel på grund av papper saknas. När en skrivare utlöser ett meddelande kör systemhändelseagenter appens bakgrundsprocess. Därifrån kan bakgrundsaktiviteten spara meddelandedetaljer, skicka ett toast-meddelande, uppdatera en ruta, uppdatera ett märke eller inte göra någonting. Genom att spara meddelandeinformation kan din app tillhandahålla en upplevelse som hjälper användarna att förstå och åtgärda sina skrivarproblem.

Skrivartillverkare måste implementera Bidi och Xml-filen DriverEvent i sin v4-utskriftsdrivrutin för att kunna använda utskriftsmeddelanden med sina UWP-enhetsappar. Mer information finns i Dubbelriktad kommunikation.

När en DriverEvent inträffar och bakgrundsaktiviteten för en UWP-enhetsapp startas har appen flera alternativ för hur den kan fortsätta. Mer information om flödet som leder till att uppgiften startas finns i Drivrutinsstöd för anpassat användargränssnitt.

Bakgrundsaktiviteten kan välja att:

Med panelmeddelandet eller popup-meddelandet kan användaren enkelt starta förgrundsappen. När appen i förgrunden startas kan den använda metoden OnLaunched i App.xaml.cs för att kontrollera om den startades från en panel eller ett toast-meddelande. I så fall kan förgrundsappen komma åt information om utskriftsmeddelanden i det lokala appdatalagret.

Prerequisites

Innan du börjar:

  1. Kontrollera att skrivaren är installerad med en v4-utskriftsdrivrutin. Mer information finns i Utveckla v4-utskriftsdrivrutiner.

  2. Konfigurera din utvecklingsdator. Se Komma igång för information om hur du laddar ned verktygen och skapar ett utvecklarkonto.

  3. Associera din app med butiken. Mer information finns i Skapa en UWP-enhetsapp.

  4. Skapa enhetsmetadata för skrivaren som associerar den med din app. Mer information finns i Skapa enhetsmetadata.

  5. Skapa användargränssnittet för appens huvudsida. Alla UWP-enhetsappar kan startas från Start, där de visas i helskärmsläge. Använd Start-upplevelsen för att markera din produkt eller dina tjänster på ett sätt som matchar de specifika varumärkesanpassningarna och funktionerna på dina enheter. Det finns inga särskilda begränsningar för vilken typ av användargränssnittskontroller som kan användas. Information om hur du kommer igång med utformningen av helskärmsmiljön finns i Designprinciper för Microsoft Store.

  6. Om du skriver din app med C# eller JavaScript lägger du till projekten PrinterExtensionLibrary och DeviceAppForPrintersLibrary i din UWP-enhetsapplösning. Du hittar vart och ett av dessa projekt i exemplet utskriftsinställningar och utskriftsmeddelanden .

Eftersom C++ kan komma åt COM direkt kräver C++-appar inte ett separat bibliotek för att fungera med com-baserade skrivarenhetskontexter.

Steg 1: Registrera bakgrundsaktivitet

För att Windows ska kunna identifiera att appen kan hantera utskriftsmeddelanden måste den registrera ett tillägg för bakgrundsaktiviteter för utskriftsmeddelanden. Det här tillägget deklareras i ett Extension element, med ett Category attribut inställt på windows.backgroundTasks och ett EntryPoint attribut inställt på BackgroundTask.PrintBackgroundTask. Tillägget innehåller också ett Task element som anger att det stöder systemEvent aktivitetstyper.

Du kan lägga till tillägget för utskriftsbakgrundsaktiviteten på fliken Deklarationer i Manifest Designer i Microsoft Visual Studio. Du kan också redigera XML-manifestet för apppaketet manuellt med hjälp av XML-redigeraren (text). Högerklicka på filen Package.appxmanifest i Prieskumník riešení för redigeringsalternativ.

Det här exemplet visar bakgrundsaktivitetstillägget i -elementet Extension , som det visas i apppaketmanifestfilen Package.appxmanifest.

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
  <Identity Name="Microsoft.SDKSamples.DeviceAppForPrinters.CS" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Version="1.0.0.0" />
  <Properties>
    <DisplayName>Device App For Printers C# sample</DisplayName>
    <PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
    <Logo>Assets\storeLogo-sdk.png</Logo>
  </Properties>
  <Prerequisites>
    <OSMinVersion>6.3.0</OSMinVersion>
    <OSMaxVersionTested>6.3.0</OSMaxVersionTested>
  </Prerequisites>
  <Resources>
    <Resource Language="x-generate" />
  </Resources>
  <Applications>
    <Application Id="DeviceAppForPrinters" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForPrinters.App">
      <VisualElements DisplayName="Device App For Printers C# sample" Logo="Assets\squareTile-sdk.png"
                      SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForPrinters C# sample"
                      ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="true">
        <DefaultTile ShowName="allLogos" ShortName="App4PrinterCS" WideLogo="Assets\tile-sdk.png" />
        <SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
      </VisualElements>
      <Extensions>
        <Extension Category="windows.backgroundTasks" EntryPoint="BackgroundTask.PrintBackgroundTask">
          <BackgroundTasks>
            <Task Type="systemEvent" />
          </BackgroundTasks>
        </Extension>
        <Extension Category="windows.printTaskSettings" Executable="$targetnametoken$.exe" EntryPoint="DeviceAppForPrinters.App" />
      </Extensions>
    </Application>
  </Applications>
</Package>

Steg 2: Konfigurera enhetsmetadata

När du använder redigeringsguiden för enhetsmetadata för att associera din app med enheten måste du fylla i rutan Meddelandehanterare på sidan Ange UWP-enhetsinformation . Detta säkerställer att appens bakgrundsaktivitet anropas under ett utskriftsmeddelande.

Stegvisa instruktioner för hur du redigerar enhetens metadata finns i avsnittet Testning .

Steg 3: Skapa användargränssnittet

Innan du skapar din app bör du samarbeta med dina designers och marknadsföringsteamet för att utforma användarupplevelsen. Användarupplevelsen bör projicera varumärkesaspekterna för ditt företag och hjälpa dig att skapa en anslutning med dina användare.

Designriktlinjer

Det är viktigt att granska riktlinjerna för Microsoft Store-appen innan du utformar din panel och märkesupplevelse. Riktlinjerna hjälper till att säkerställa att din app ger en intuitiv upplevelse som är konsekvent med andra UWP-appar.

På huvudsidan i din app bör du tänka på att Windows 8.1 kan visa flera appar i olika storlekar på en enda bildskärm. Se följande riktlinjer för att lära dig mer om hur din app kan flöda om korrekt mellan skärmstorlekar, fönsterstorlekar och orienteringar.

Bästa praxis

  • Inkludera inte åtgärdsord i meddelanden. Använd inte text i meddelandemeddelandet som uppmanar användarna att skicka, trycka på eller välja avisering. Användarna förstår redan att de kan trycka på en popup för att hitta mer information. Skriv till exempel bara "Skrivaren har lite bläck" i stället för "Skrivaren har lite bläck. Tryck för att felsöka".

  • Håll interaktionerna enkla. Allt som visas i meddelandeupplevelsen bör vara relaterat till meddelandet. En meddelandesida om ett pappersstopp bör till exempel bara innehålla länkar och information om hur du löser problemet. Den ska inte innehålla länkar till orelaterade upplevelser, till exempel inköp av bläck eller annan supportinformation.

  • Använd multimedia. Använd faktiska foton, videor eller illustrationer av enheten för att hjälpa användarna att snabbt lösa ett problem med sin enhet.

  • Håll användarna inom appens kontext. När du anger information om ett problem ska du inte länka till online eller annat supportmaterial. Behåll användaren i appens kontext.

Steg 4: Skapa bakgrundsaktivitet

Om din app registrerar en bakgrundsaktivitet för utskriftsmeddelanden måste den ange en hanterare för aktiveringen av bakgrundsaktiviteten. I exemplet PrintBackgroundTask hanterar klassen utskriftsmeddelandena.

Om skrivarstatusen inte kräver omedelbar användarintervention, uppdaterar du en ruta i stället för att visa en avisering. Till exempel, för en låg bläcknivå, räcker det med en kakeluppdatering. Men om skrivaren har slut på bläck kan appen visa en notis.

Spara meddelandeinformation

Bakgrundsaktiviteten kan inte starta förgrundsappen direkt, bara användaren kan: från en panel, popup-kod eller Start. För att säkerställa att förgrundsappen kan komma åt information om utskriftsmeddelanden sparar bakgrundsaktiviteten dem till lokal lagring. Mer information om hur du använder lokal lagring finns i Snabbstart: lokala appdata.

När ett utskriftsmeddelande utlöses kör Windows bakgrundsaktiviteten genom att anropa dess Run metod. Meddelandedata skickas till bakgrundsaktiviteten via en metodparameter som måste typomvandlas till typen Windows.Devices.Printers.Extensions.PrintNotificationEventDetails. Egenskaperna PrinterName och EventData för objektet bär skrivarnamnet respektive Bidi-meddelandet.

Det här exemplet visar bakgrundsaktivitetens metod i Run, där informationen om utskriftsmeddelanden sparas i appinställningarna innan metoderna toast, tile och badge anropas.

public void Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance)
{
    // Save notification details to local storage
    PrintNotificationEventDetails details = (PrintNotificationEventDetails)taskInstance.TriggerDetails;
    settings.Values[keyPrinterName] = details.PrinterName;
    settings.Values[keyAsyncUIXML] = details.EventData;

    // Demonstrate possible actions
    ShowToast(details.PrinterName, details.EventData);
    UpdateTile(details.PrinterName, details.EventData);
    UpdateBadge();
}

Uppdatera en panel

När utskriftsmeddelandedetaljerna UpdateTile skickas till metoden visar exemplets bakgrundsaktivitet hur du visar dem på en ruta. För mer information om kakel, se Översikt över kakel och kakelaviseringar.

I det här exemplet visas bakgrundsaktivitetens UpdateTile metod i filen PrintBackgroundTask.cs .

void UpdateTile(string printerName, string bidiMessage)
{
    TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
    tileUpdater.Clear();

    XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text09);
    XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
    tileTextAttributes[0].InnerText = printerName;
    tileTextAttributes[1].InnerText = bidiMessage;

    TileNotification tileNotification = new TileNotification(tileXml);
    tileNotification.Tag = "tag01";
    tileUpdater.Update(tileNotification);
}

Uppdatera ett märke

Metoden UpdateBadge visar hur du använder klassen BadgeNotification för att uppdatera ett märke. Mer information om brickor finns i Översikt över brickor.

I det här exemplet visas bakgrundsaktivitetens UpdateBadge metod i filen PrintBackgroundTask.cs .

void UpdateBadge()
{
    XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);
    XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
    badgeElement.SetAttribute("value", "error");

    var badgeNotification = new BadgeNotification(badgeXml);
    BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeNotification);
}

Höja en skål

Ett toast-meddelande är ett kortvarigt meddelande till användaren som innehåller relevant, tidskänslig information och ger snabb åtkomst till relaterat innehåll i en app. Röstnotiser bör visas till användare som en inbjudan att återgå till din app för att följa upp något av intresse. För mer information, se Översikt över Toast-notifieringar.

För att aktivera toast-notifikationer måste appen registrera att den är toast-kompatibel i apppaketmanifestet. I elementet VisualElements anger du attributet ToastCapable till sant.

Important

Vi rekommenderar inte att du alltid visar ett popup-meddelande, särskilt inte för icke-åtgärdsbara händelser. Detta kan bli irriterande för användare och få dem att stänga av alla meddelanden från en app. För händelser som inte kräver användarens omedelbara uppmärksamhet rekommenderar vi att endast uppdatera panelen och märket, och att inte visa ett toastmeddelande.

Det här exemplet visar ToastCapable attributet i -elementet VisualElements , som det visas i apppaketmanifestfilen Package.appxmanifest.

<VisualElements DisplayName="Device App For Printers C# sample" Logo="Assets\squareTile-sdk.png"
                SmallLogo="Assets\smallTile-sdk.png" Description="DeviceAppForPrinters C# sample"
                ForegroundText="light" BackgroundColor="#00b2f0" ToastCapable="true">
  <DefaultTile ShowName="allLogos" ShortName="App4PrinterCS" WideLogo="Assets\tile-sdk.png" />
  <SplashScreen Image="Assets\splash-sdk.png" BackgroundColor="#00b2f0" />
</VisualElements>

Det här exemplet kommer från metoden för ShowToastPrintBackgroundTask.cs-filen . Den visar hur du visar en toast baserat på två strängar med namnen title och body.

void ShowToast(string title, string body)
{
    //
    // Get Toast template
    //
    XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02);

    //
    // Pass to app as eventArgs.detail.arguments
    //
    ((XmlElement)toastXml.SelectSingleNode("/toast")).SetAttribute("launch", title);

    //
    // The ToastText02 template has 2 text nodes (a header and a body)
    // Assign title to the first one, and body to the second one
    //
    XmlNodeList textList = toastXml.GetElementsByTagName("text");
    textList[0].AppendChild(toastXml.CreateTextNode(title));
    textList[1].AppendChild(toastXml.CreateTextNode(body));

    //
    // Show the Toast
    //
    ToastNotification toast = new ToastNotification(toastXml);
    ToastNotificationManager.CreateToastNotifier().Show(toast);
}

Steg 5: Hantera aktivering

När ett utskriftsmeddelande utlöser bakgrundsaktiviteten kan appen startas genom att trycka på ett popup-meddelande eller en panel. Om din app aktiveras från någon av dem skickas en parameter till appen via LaunchActivatedEventArgs.arguments egenskapen . Mer information om aktivering och Microsoft Store applivscykel finns i Programlivscykel.

För att avgöra om din app har aktiverats i ett av dessa fall hanterar OnLaunched du händelsen och undersöker de händelseargument som skickas till händelsehanteraren. Om händelseargumenten är null, har användaren aktiverat appen från Start. Om händelseargumenten inte är null startades appen från en popup- eller panel.

Det här exemplet kommer från metoden för OnLaunchedApp.xaml.cs-filen . Den visar hur du hanterar aktiveringen från meddelanden eller brickor.

protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
    Frame rootFrame = Window.Current.Content as Frame;

    // Do not repeat app initialization when the Window already has content,
    // just ensure that the window is active

    if (rootFrame == null)
    {
        // Create a Frame to act as the navigation context and navigate to the first page
        rootFrame = new Frame();
        // Associate the frame with a SuspensionManager key
        SuspensionManager.RegisterFrame(rootFrame, "AppFrame");

        if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
        {
            // Restore the saved session state only when appropriate
            try
            {
                await SuspensionManager.RestoreAsync();
            }
            catch (SuspensionManagerException)
            {
                //Something went wrong restoring state.
                //Assume there is no state and continue
            }
        }

        // Place the frame in the current Window
        Window.Current.Content = rootFrame;
    }
    if (rootFrame.Content == null || !String.IsNullOrEmpty(args.Arguments))
    {
        // When the navigation stack isn't restored or there are launch arguments
        // indicating an alternate launch (e.g.: via toast or secondary tile),
        // navigate to the appropriate page, configuring the new page by passing required
        // information as a navigation parameter
        if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
        {
            throw new Exception("Failed to create initial page");
        }
    }
    // Ensure the current window is active
    Window.Current.Activate();
}

Steg 6: Information om åtkomstmeddelanden

Eftersom bakgrundsaktiviteten inte kan starta förgrundsappen direkt måste information om utskriftsmeddelanden sparas i appens inställningar så att förgrundsappen kan komma åt dem. Mer information om hur du använder lokal lagring finns i Snabbstart: lokala appdata.

Det här exemplet visar hur skrivarnamnet och Bidi-meddelandet hämtas från appinställningarna i exemplet Utskriftsinställningar och utskriftsmeddelanden . Koden kommer från metoden för DisplayBackgroundTaskTriggerDetailsInkLevel.xaml.cs-filen . Nyckelindexvärdena , keyPrinterNameoch keyAsyncUIXML, är samma strängkonstanter som används i bakgrundsaktiviteten , PrintBackgroundTask.cs.

void DisplayBackgroundTaskTriggerDetails()
{
    String outputText = "\r\n";

    try
    {
        string printerName = settings.Values[keyPrinterName].ToString();
        outputText += ("Printer name from background task triggerDetails: " + printerName);
    }
    catch (Exception)
    {
        outputText += ("No printer name retrieved from background task triggerDetails ");
    }

    outputText += "\r\n";
    try
    {
        string asyncUIXML = settings.Values[keyAsyncUIXML].ToString();
        outputText += ("AsyncUI xml from background task triggerDetails: " + asyncUIXML);
    }
    catch (Exception)
    {
        outputText += ("No asyncUI xml retrieved from background task triggerDetails ");
    }

    ToastOutput.Text += outputText;
}

Testing

Innan du kan testa UWP-enhetsappen måste den länkas till skrivaren med enhetsmetadata.

Du behöver en kopia av enhetens metadatapaket för skrivaren för att lägga till information om enhetsappen i den. Om du inte har enhetsmetadata kan du skapa dem med hjälp av redigeringsguiden för enhetsmetadata enligt beskrivningen i artikeln Skapa enhetsmetadata för UWP-enhetsappen.

Om du vill använda redigeringsguiden för enhetsmetadata måste du installera Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate eller fristående SDK för Windows 8.1 innan du slutför stegen i den här artikeln. När du installerar Microsoft Visual Studio Express för Windows installeras en version av SDK:t som inte innehåller guiden.

Följande steg skapar din app och installerar enhetens metadata.

  1. Aktivera testsignering.

    1. Starta redigeringsguiden för enhetsmetadata från %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 genom att dubbelklicka på DeviceMetadataWizard.exe

    2. På menyn Verktyg väljer du Aktivera testsignering.

  2. Starta om datorn

  3. Skapa lösningen genom att öppna lösningsfilen (.sln). Tryck på F7 eller gå till Build->Build Solution i toppmenyn när exemplet har laddats.

  4. Koppla från och avinstallera skrivaren. Det här steget krävs så att Windows läser de uppdaterade enhetsmetadata nästa gång enheten identifieras.

  5. Redigera och spara enhetsmetadata. Om du vill länka enhetsappen till enheten måste du associera enhetsappen med din enhet.

    Om enhetens metadata inte har skapats ännu kan du läsa Skapa enhetsmetadata för UWP-enhetsappen.

    1. Om redigeringsguiden för enhetsmetadata inte är öppen än startar du den från %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 genom att dubbelklicka påDeviceMetadataWizard.exe.

    2. Välj Redigera enhetsmetadata. Med det här alternativet kan du redigera ditt befintliga enhetsmetadatapaket.

    3. I dialogrutan Öppna letar du reda på det enhetsmetadatapaket som är associerat med UWP-enhetsappen. (Den har filnamnstillägget devicemetadata-ms .)

    4. På sidan Ange UWP-enhetsinformation anger du appinformationen för Microsoft Store i rutan UWP-enhetsapp . Välj Importera UWP-appmanifestfilen för att automatiskt ange paketnamnet, utgivarens namn och UWP-app-ID.

    5. Om appen registrerar sig för skrivarmeddelanden fyller du i rutan Meddelandehanterare . I Händelse-ID anger du namnet på utskriftshändelsehanteraren. I Händelsetillgång anger du namnet på filen där koden finns.

    6. När du är klar väljer du Nästa tills du kommer till sidan Slutför .

    7. På sidan Granska enhetens metadatapaket kontrollerar du att alla inställningar är korrekta och markerar kryssrutan Kopiera enhetens metadatapaket till metadatalagret på den lokala datorn. Välj sedan Spara.

  6. Återanslut skrivaren så att Windows läser de uppdaterade enhetsmetadata när enheten är ansluten.

Troubleshooting

Problem: Inget standard toastavisering dyker upp

Om inget standardutskriftsmeddelande visas när det är förväntat...

  • Möjlig orsak: Testsignering är inte aktiverat. Mer information om hur du aktiverar det finns i avsnittet Felsökning i den här artikeln.

  • Möjlig orsak: Toastnotiser är inaktiverade av domänprinciper. Lämna domänen och försök igen.

  • Möjlig orsak: Skrivaren har inte implementerat DriverEvents. Kontrollera att din v4-drivrutin stöder Bidi och DriverEvents. Mer information finns i Drivrutinsstöd för anpassat användargränssnitt.

  • Möjlig orsak: Datorn har inget nytt jobb i skrivarkön. Kontrollera att skrivarikonen visas i det nedre högra hörnet på skärmen. Annars, skicka ett annat utskriftsjobb.

  • Möjlig orsak: Startpunkten för bakgrundsaktiviteten (IBackgroundTask) finns i samma projekt som förgrundsappen. Det här scenariot är inte tillåtet. Avgränsa en helt ny klass för bakgrundsaktivitetshanteraren.

  • Möjlig orsak: Klassen som är ingångspunkt för aviseringar i din app anges felaktigt i manifestfilen eller enhetens metadata, vilket leder till att appen kraschar i bakgrundsprocessen och inte visar något toast-meddelande. Sök efter följande problem:

    • Kontrollera att startpunkten anges korrekt på fliken Deklarationer i Manifestdesignern. Den ska vara i form av Namespace.ClassName för C# och C++. För JavaScript bör det vara den relativa katalogsökvägen till .js-filen.

    • En JavaScript-app bör anropa close() när den är klar.

    • C#-klassen måste implementera Windows.ApplicationModel.Background.IBackgroundTask och måste ha en offentlig void-metod Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance) .

    • Klassen C++ måste implementera Windows::ApplicationModel::Background::IBackgroundTask och måste ha en virtual void Run(Windows::ApplicationModel::Background::IBackgroundTaskInstance^ taskInstance) metod.