Condividi tramite


Uso delle notifiche di stampa in un'app per dispositivi UWP

In Windows 8.1 le app per dispositivi UWP possono rispondere agli eventi di comunicazione bidirezionale (Bidi) inviati da un driver di stampa v4. In questo argomento vengono presentate le notifiche di stampa e viene illustrato in che modo la versione C# delle impostazioni di stampa e l'esempio di notifiche di stampa usa un'attività in background per rispondere alla notifica di stampa. L'attività in background illustra come salvare i dettagli delle notifiche nell'archivio dati dell'app locale, inviare avvisi popup e aggiornare un riquadro e una notifica. Per altre informazioni sulle app per dispositivi UWP in generale, vedi Soddisfare le app per dispositivi UWP.

La versione C# delle impostazioni di stampa e dell'esempio di notifiche di stampa illustra la parte in background dell'app (l'attività in background) nel progetto BackgroundTask . Il codice per l'attività in background si trova nel file PrintBackgroundTask.cs . L'app in primo piano, l'app a schermo intero che può essere avviata da Start, si trova nel progetto DeviceAppForPrinters. Il file InkLevel.xaml.cs mostra un modo in cui è possibile accedere ai dettagli delle notifiche dall'app in primo piano. Per utilizzare le notifiche di stampa, l'esempio usa la libreria di estensioni della stampante nel progetto PrinterExtensionLibrary . La libreria di estensioni della stampante offre un modo pratico per accedere alle interfacce di estensione della stampante del driver di stampa v4. Per altre info, vedi Panoramica della libreria di estensioni della stampante.

Gli esempi di codice illustrati in questo argomento si basano sulla versione C# delle impostazioni di stampa e sull'esempio di notifiche di stampa. Questo esempio è disponibile anche in JavaScript e C++. Si noti che poiché C++ può accedere direttamente a COM, la versione C++ dell'esempio non include progetti di libreria di codice. Scaricare gli esempi per visualizzare le versioni più recenti del codice.

Le notifiche di stampa consentono all'app del dispositivo UWP di informare l'utente di eventi importanti della stampante durante la stampa, ad esempio un blocco di carta, aprire la porta della stampante, livelli di inchiostro bassi o errori di stampa fuori carta. Quando una stampante attiva una notifica, il gestore eventi di sistema esegue l'attività in background dell'app. Da qui, l'attività in background può salvare i dettagli della notifica, inviare un avviso popup, aggiornare un riquadro, aggiornare una notifica o non eseguire alcuna operazione. Salvando i dettagli delle notifiche, l'app può offrire un'esperienza che consente agli utenti di comprendere e risolvere i problemi della stampante.

I produttori di stampanti devono implementare Bidi e il file XML DriverEvent nel driver di stampa v4 per usare le notifiche di stampa con le app per dispositivi UWP. Per altre info, vedi Comunicazioni bidirezionali.

Quando si verifica un evento DriverEvent e viene avviata l'attività in background di un'app per dispositivi UWP, l'app ha diverse opzioni per procedere. Per altri dettagli sul flusso che porta all'avvio dell'attività, vedere Supporto driver per l'interfaccia utente personalizzata.

L'attività in background può scegliere di:

La notifica del riquadro o la notifica di tipo avviso popup può consentire all'utente di avviare facilmente l'app in primo piano. Quando l'app in primo piano viene avviata, può usare il OnLaunched metodo in App.xaml.cs per verificare se è stato avviato da un riquadro o da un avviso popup. In caso affermativo, l'app in primo piano può accedere a qualsiasi dettagli di notifica di stampa nell'archivio dati dell'app locale.

Prerequisiti

Prima di iniziare:

  1. Assicurarsi che la stampante sia installata usando un driver di stampa v4. Per altre informazioni, vedi Sviluppo di driver di stampa v4.

  2. Configurare il PC di sviluppo. Vedi Introduzione per informazioni sul download degli strumenti e sulla creazione di un account per sviluppatore.

  3. Associare l'app allo Store. Per informazioni su questo, vedi Creare un'app per dispositivi UWP.

  4. Creare i metadati del dispositivo per la stampante che la associa all'app. Per altre informazioni, vedere Creare metadati del dispositivo.

  5. Compilare l'interfaccia utente per la pagina principale dell'app. Tutte le app per dispositivi UWP possono essere avviate dalla schermata Start, in cui verranno visualizzate a schermo intero. Usa l'esperienza Start per evidenziare il tuo prodotto o i tuoi servizi in modo che corrisponda alla personalizzazione e alle funzionalità specifiche dei tuoi dispositivi. Non esistono restrizioni speciali per il tipo di controlli dell'interfaccia utente che può usare. Per iniziare a usare la progettazione dell'esperienza a schermo intero, vedere i principi di progettazione di Microsoft Store.

  6. Se stai scrivendo la tua app con C# o JavaScript, aggiungi i progetti PrinterExtensionLibrary e DeviceAppForPrintersLibrary alla soluzione di app per dispositivi UWP. È possibile trovare ognuno di questi progetti nell'esempio Di impostazioni di stampa e notifiche di stampa.

Poiché C++ può accedere direttamente a COM, le app C++ non richiedono una libreria separata per funzionare con il contesto di dispositivo della stampante basato su COM.

Passaggio 1: Registrare l'attività in background

Affinché Windows riconosca che l'app può gestire le notifiche di stampa, deve registrare un'estensione delle attività in background per le notifiche di stampa. Questa estensione viene dichiarata in un Extension elemento, con un Category attributo impostato su windows.backgroundTasks e un EntryPoint attributo impostato su BackgroundTask.PrintBackgroundTask. L'estensione include anche un Task elemento per indicare che supporta i systemEvent tipi di attività.

È possibile aggiungere l'estensione dell'attività in background di stampa nella scheda Dichiarazioni di Progettazione manifesto in Microsoft Visual Studio. È anche possibile modificare manualmente il file XML del manifesto del pacchetto dell'app usando l'editor XML (testo). Fare clic con il pulsante destro del mouse sul file Package.appxmanifest in Esplora soluzioni per le opzioni di modifica.

Questo esempio mostra l'estensione dell'attività in background nell'elemento Extension , come appare nel file manifesto del pacchetto dell'app, 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>

Passaggio 2: Configurare i metadati del dispositivo

Quando usi la Creazione guidata metadati dispositivo per associare la tua app al dispositivo, assicurati di completare la casella Gestori di notifica nella pagina Specificare le informazioni sull'app per dispositivi UWP. Ciò consente di assicurarsi che l'attività in background dell'app venga chiamata durante una notifica di stampa.

Per istruzioni dettagliate su come modificare i metadati del dispositivo, vedere la sezione Test .

Passaggio 3: Compilare l'interfaccia utente

Prima di creare l'app, è necessario collaborare con i progettisti e il team di marketing per progettare l'esperienza utente. L'esperienza utente deve proiettare gli aspetti di personalizzazione dell'azienda e contribuire a creare una connessione con gli utenti.

Linee guida di progettazione

È importante esaminare le linee guida per le app di Microsoft Store prima di progettare il riquadro e l'esperienza badge. Le linee guida consentono di garantire che l'app fornisca un'esperienza intuitiva coerente con altre app UWP.

Per la pagina principale della tua app, tieni presente che Windows 8.1 può visualizzare più app in varie dimensioni in un singolo monitor. Vedere le linee guida seguenti per altre informazioni su come l'app può rielaborare correttamente le dimensioni dello schermo, le dimensioni della finestra e gli orientamenti.

Procedure consigliate

  • Non includere parole di azione sulle notifiche. Nel messaggio di notifica non usare il testo che indica agli utenti di eseguire il push, premere o fare clic sulla notifica. Gli utenti sanno già che possono premere un avviso popup per trovare altre informazioni. Ad esempio, scrivere semplicemente "La stampante è bassa su inchiostro" invece di "La stampante è bassa su inchiostro. Premere per risolvere i problemi".

  • Mantenere semplici le interazioni. Tutti gli elementi visualizzati nell'esperienza di notifica devono essere correlati alla notifica. Ad esempio, una pagina di notifica relativa a un blocco di carta deve contenere solo collegamenti e informazioni sulla risoluzione del problema. Non deve contenere collegamenti a esperienze non correlate, ad esempio l'acquisto di input penna o altre informazioni di supporto.

  • Utilizzare i contenuti multimediali. Usa foto, video o illustrazioni effettive del dispositivo per aiutare gli utenti a risolvere rapidamente un problema con il dispositivo.

  • Mantenere gli utenti all'interno del contesto dell'app. Quando si forniscono informazioni su un problema, non collegarsi online o ad altri materiali di supporto. Mantenere l'utente nel contesto dell'app.

Passaggio 4: Creare un'attività in background

Se l'app registra un'attività in background per le notifiche di stampa, deve fornire un gestore per l'attivazione dell'attività in background. Nell'esempio Di impostazioni di stampa e notifiche di stampa la PrintBackgroundTask classe gestisce le notifiche di stampa.

Se lo stato della stampante non richiede l'intervento immediato dell'utente, aggiornare un riquadro anziché visualizzare un avviso popup. Ad esempio, per una condizione di input penna basso, è sufficiente un aggiornamento del riquadro. Tuttavia, se la stampante è completamente fuori input penna, l'app potrebbe visualizzare una notifica di tipo avviso popup.

Salvataggio dei dettagli delle notifiche

L'attività in background non può avviare direttamente l'app in primo piano, ma solo l'utente può: da un riquadro, da un avviso popup o da Start. Quindi, per assicurarsi che l'app in primo piano possa accedere ai dettagli delle notifiche di stampa, l'attività in background li salva nella risorsa di archiviazione locale. Per altre informazioni sull'uso dell'archiviazione locale, vedere Avvio rapido: dati delle app locali.

Quando viene attivata una notifica di stampa, Windows esegue l'attività in background chiamando il relativo Run metodo. I dati di notifica vengono passati all'attività in background tramite un parametro del metodo di cui è necessario eseguire il cast al tipo Windows.Devices.Printers.Extensions.PrintNotificationEventDetails. Le PrinterName proprietà e EventData dell'oggetto contengono rispettivamente il nome della stampante e il messaggio Bidi.

Questo esempio mostra il metodo dell'attività in background, nel file PrintBackgroundTask.cs, in cui i dettagli della notifica di stampa vengono salvati nelle impostazioni dell'app Run prima che vengano chiamati i metodi avviso popup, riquadro e badge.

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();
}

Aggiornamento di un riquadro

Quando i dettagli della notifica di stampa vengono inviati al UpdateTile metodo , l'attività in background dell'esempio illustra come visualizzarli in un riquadro. Per altre informazioni sui riquadri, vedi Panoramica delle notifiche di riquadri e riquadri.

In questo esempio viene illustrato il metodo dell'attività UpdateTile in background nel file 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);
}

Aggiornamento di una notifica

Il UpdateBadge metodo mostra come usare la classe BadgeNotification per aggiornare una notifica. Per altre info sui riquadri, vedi Panoramica delle notifiche.

In questo esempio viene illustrato il metodo dell'attività UpdateBadge in background nel file 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);
}

Generazione di un avviso popup

Una notifica di tipo avviso popup è un messaggio temporaneo per l'utente che contiene informazioni rilevanti e sensibili al tempo e fornisce accesso rapido al contenuto correlato in un'app. Le notifiche di tipo avviso popup devono essere visualizzate agli utenti come invito a tornare all'app per completare qualcosa di interessante. Per altre info, vedi Panoramica delle notifiche di tipo avviso popup.

Per abilitare le notifiche di tipo avviso popup, l'app deve registrarla nel manifesto del pacchetto dell'app. Nell'elemento impostare l'attributo VisualElementsToastCapable su true.

Importante

Non è consigliabile visualizzare sempre un avviso popup, soprattutto per gli eventi non interattivi. Questo può diventare fastidioso per gli utenti e causare la disattivazione di tutti gli avvisi popup da un'app. Per gli eventi che non richiedono l'attenzione immediata dell'utente, è consigliabile aggiornare solo il riquadro e il badge e non visualizzare un avviso popup.

Questo esempio mostra l'attributo ToastCapable nell'elemento VisualElements , come appare nel file manifesto del pacchetto dell'app, 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>

Questo esempio proviene dal ShowToast metodo del file PrintBackgroundTask.cs . Viene illustrato come generare un avviso popup in base a due stringhe, denominate title e 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);
}

Passaggio 5: Gestire l'attivazione

Dopo che una notifica di stampa attiva l'attività in background, l'app può essere avviata toccando una notifica di tipo avviso popup o un riquadro. Se l'app viene attivata da uno dei due, un parametro verrà passato all'app tramite LaunchActivatedEventArgs.arguments la proprietà . Per altre info sull'attivazione e sul ciclo di vita dell'app di Microsoft Store, vedi Ciclo di vita dell'applicazione.

Per determinare se l'app è stata attivata in uno di questi casi, gestire l'evento OnLaunched ed esaminare gli argomenti dell'evento passati al gestore eventi. Se gli argomenti dell'evento sono Null, l'app è stata attivata dall'utente da Start. Se gli argomenti dell'evento non sono Null, l'app è stata avviata da un avviso popup o da un riquadro.

Questo esempio proviene dal OnLaunched metodo del file App.xaml.cs . Illustra come gestire l'attivazione da riquadri o avvisi popup.

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();
}

Passaggio 6: Accedere ai dettagli delle notifiche

Poiché l'attività in background non può avviare direttamente l'app in primo piano, i dettagli della notifica di stampa devono essere salvati nelle impostazioni dell'app in modo che l'app in primo piano possa accedervi. Per altre informazioni sull'uso dell'archiviazione locale, vedere Avvio rapido: dati delle app locali.

In questo esempio viene illustrato come recuperare il nome della stampante e il messaggio Bidi dalle impostazioni dell'app nell'esempio Di impostazioni di stampa e di stampa . Il codice proviene dal DisplayBackgroundTaskTriggerDetails metodo del file InkLevel.xaml.cs . Si noti che i valori keyPrinterName dell'indice chiave e keyAsyncUIXML, sono le stesse costanti stringa usate nell'attività in background, 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;
}

Test in corso

Prima di poter testare l'app per dispositivi UWP, deve essere collegata alla stampante usando i metadati del dispositivo.

È necessaria una copia del pacchetto di metadati del dispositivo per la stampante per aggiungere le informazioni sull'app del dispositivo. Se non hai metadati del dispositivo, puoi compilarlo usando la Creazione guidata metadati dispositivo come descritto nell'argomento Creare metadati del dispositivo per l'app per dispositivi UWP.

Per usare la Creazione guidata metadati dispositivo, è necessario installare Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate o l'SDK autonomo per Windows 8.1, prima di completare i passaggi descritti in questo argomento. L'installazione di Microsoft Visual Studio Express per Windows installa una versione dell'SDK che non include la procedura guidata.

La procedura seguente consente di compilare l'app e installare i metadati del dispositivo.

  1. Abilitare la firma di test.

    1. Avviare la Creazione guidata metadati dispositivo da %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 facendo doppio clic su DeviceMetadataWizard.exe

    2. Scegliere Abilita firma test dal menu Strumenti.

  2. Riavviare il computer

  3. Compilare la soluzione aprendo il file della soluzione (.sln). Premere F7 o passare a Compila soluzione> dal menu in alto dopo il caricamento dell'esempio.

  4. Disconnettere e disinstallare la stampante. Questo passaggio è obbligatorio in modo che Windows leggerà i metadati aggiornati del dispositivo alla successiva individuazione del dispositivo.

  5. Modificare e salvare i metadati del dispositivo. Per collegare l'app del dispositivo al dispositivo, devi associare l'app per dispositivo al dispositivo.

    Se non hai ancora creato i metadati del dispositivo, vedi Creare metadati del dispositivo per l'app per dispositivi UWP.

    1. Se la Creazione guidata metadati dispositivo non è ancora aperta, avviarla da %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86 facendo doppio clic su DeviceMetadataWizard.exe.

    2. Fare clic su Modifica metadati dispositivo. In questo modo sarà possibile modificare il pacchetto di metadati del dispositivo esistente.

    3. Nella finestra di dialogo Apri individuare il pacchetto di metadati del dispositivo associato all'app per dispositivi UWP. Ha un'estensione di file devicemetadata-ms .

    4. Nella pagina Specificare le informazioni sull'app per dispositivi UWP immettere le informazioni sull'app di Microsoft Store nella casella app per dispositivi UWP. Fare clic su Importa file manifesto dell'app UWP per immettere automaticamente il nome del pacchetto, il nome dell'editore e l'ID app UWP.

    5. Se l'app sta registrando per le notifiche della stampante, compilare la casella Gestori di notifica. In ID evento immettere il nome del gestore eventi di stampa. In Asset evento immettere il nome del file in cui risiede il codice.

    6. Al termine, fare clic su Avanti finché non si arriva alla pagina Fine .

    7. Nella pagina Rivedi il pacchetto di metadati del dispositivo verificare che tutte le impostazioni siano corrette e selezionare la casella di controllo Copia il pacchetto di metadati del dispositivo nell'archivio metadati nel computer locale. Fare clic su Save (Salva).

  6. Riconnettere la stampante in modo che Windows legga i metadati aggiornati del dispositivo quando il dispositivo è connesso.

Risoluzione dei problemi

Problema: non viene visualizzata alcuna notifica di tipo avviso popup predefinita

Se non viene visualizzata alcuna notifica di stampa predefinita quando previsto...

  • Possibile causa: la firma del test non è attivata. Per informazioni sull'attivazione, vedi la sezione Debug in questo argomento.

  • Possibile causa: i criteri di dominio hanno disabilitato le notifiche di tipo avviso popup. Lasciare il dominio e riprovare.

  • Possibile causa: la stampante non ha implementato DriverEvents. Verificare che il driver v4 supporti Bidi e DriverEvents. Per altre info, vedi Supporto driver per l'interfaccia utente personalizzata.

  • Possibile causa: il computer non dispone di un processo recente nella coda della stampante. Assicurarsi che l'icona della stampante sia visualizzata nell'angolo inferiore destro dello schermo. In caso contrario, inviare un altro processo di stampa.

  • Possibile causa: il punto di ingresso per l'attività in background (IBackgroundTask) si trova nello stesso progetto dell'app in primo piano. ma questa operazione non è consentita. Separare una classe completamente nuova per il gestore attività in background.

  • Possibile causa: la classe che rappresenta il punto di ingresso per le notifiche nell'app viene specificata in modo non corretto nei metadati del manifesto o del dispositivo, causando l'arresto anomalo dell'app all'interno di backgroundhost e senza visualizzare alcun avviso popup. Procedi come segue:

    • Assicurarsi che il punto di ingresso sia specificato correttamente nella scheda Dichiarazioni di Progettazione manifesto. Deve essere nel formato Namespace.ClassName per C# e C++. Per JavaScript, deve essere il percorso della directory relativo al file .js.

    • Un'app JavaScript deve chiamare close() al termine.

    • La classe C# deve implementare Windows.ApplicationModel.Background.IBackgroundTask e deve avere un metodo void Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance) pubblico.

    • La classe C++ deve implementare Windows::ApplicationModel::Background::IBackgroundTask e deve avere un virtual void Run(Windows::ApplicationModel::Background::IBackgroundTaskInstance^ taskInstance) metodo .

Panoramica delle notifiche (app UWP)

Panoramica delle notifiche di riquadri e riquadri (app UWP)

Linee guida ed elenco di controllo per riquadri e badge (app UWP)

Panoramica delle notifiche di tipo avviso popup (app UWP)

Linee guida ed elenco di controllo per le notifiche di tipo avviso popup (app UWP)

Supporto dei driver per l'interfaccia utente personalizzata

Sviluppo di driver di stampa v4

Interfacce di estensione della stampante (driver di stampa v4)

Comunicazioni bidirezionali

Introduzione alle app UWP

Creare un'app per dispositivi UWP (guida dettagliata)

Creare metadati del dispositivo per un'app per dispositivi UWP (guida dettagliata)