Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Метаданные устройства являются устаревшими и будут удалены в будущем выпуске Windows. Сведения о замене этой функции см. в разделе Метаданные контейнера пакетов драйверов.
Приложения устройств UWP могут реагировать на двунаправленные события связи (Bidi), отправленные из драйвера печати версии 4. В этой статье представлены уведомления о печати и показано, как в C# версии примера параметров печати и уведомлений о печати используется фоновая задача для реагирования на уведомления о печати. Фоновая задача демонстрирует, как сохранить сведения об уведомлении в локальном хранилище данных приложения, отправить уведомления с тостами и обновить плитку и бейдж. Дополнительные сведения о приложениях устройств UWP см. в статье "Знакомство с приложениями устройств UWP".
Версия C# примера параметров печати и уведомлений о печати демонстрирует фоновую часть (фоновую задачу) в проекте BackgroundTask. Код фоновой задачи находится в файле PrintBackgroundTask.cs . Активное приложение, полноэкранное приложение, которое можно запустить из меню "Пуск", находится в проекте DeviceAppForPrinters. В файле InkLevel.xaml.cs показано, как получить доступ к сведениям о уведомлениях из приложения переднего плана. Для работы с уведомлениями о печати в примере используется библиотека расширений принтера в проекте PrinterExtensionLibrary . Библиотека расширений принтера предоставляет удобный способ доступа к интерфейсам расширения принтера драйвера печати версии 4. Дополнительные сведения см. в обзоре библиотеки расширений принтера.
Примеры кода, показанные в этой статье, основаны на версии C# параметров печати и образца уведомлений о печати . Этот пример также доступен в JavaScript и C++. Так как C++ может напрямую получить доступ к COM, версия C++ примера не включает проекты библиотеки кода. Скачайте примеры, чтобы просмотреть последние версии кода.
Печать уведомлений
Уведомления о печати позволяют приложению UWP устройства сообщить пользователю о важных событиях принтера во время печати, таких как замятие бумаги, открытая дверь принтера, низкий уровень чернил или ошибки отсутствия бумаги в принтере. Когда принтер активирует уведомление, системный брокер событий запускает фоновую задачу приложения. Оттуда фоновая задача может сохранить сведения об уведомлении, отправить тост-уведомление, обновить плитку, обновить значок или ничего не делать. Сохраняя сведения о уведомлении, приложение может предоставить пользователям возможность понять и устранить проблемы с принтером.
Производители принтеров должны реализовать Bidi и XML-файл DriverEvent в своем драйвере печати версии 4, чтобы использовать уведомления о печати с приложениями устройств UWP. Дополнительные сведения см. в разделе "Двунаправленная связь".
Когда происходит событие DriverEvent и запускается фоновая задача приложения UWP, у приложения есть несколько вариантов того, как оно может действовать дальше. Дополнительные сведения о потоке, который приводит к запуску задачи, см. в разделе "Поддержка драйверов для настраиваемого пользовательского интерфейса".
Фоновая задача может выбрать следующее:
- Бездействовать
- Сохранение сведений о уведомлении в локальном хранилище данных приложения
- Обновление уведомления плитки приложения UWP
- Обновление индикатора уведомлений приложения UWP
- Отправка всплывающего уведомления приложения UWP
Уведомление плитки или всплывающее уведомление может позволить пользователю удобно запускать приложение переднего плана. Когда приложение переднего плана запускается, оно может использовать метод OnLaunched в App.xaml.cs, чтобы проверить, было ли оно запущено плиткой или всплывающим уведомлением. Если это так, приложение переднего плана может получить доступ к любым сведениям уведомления о печати в локальном хранилище данных приложения.
Prerequisites
Прежде чем начать:
Убедитесь, что принтер установлен с помощью драйвера печати версии 4. Дополнительные сведения см. в статье "Разработка драйверов печати версии 4".
Настройте компьютер разработки. Сведения о скачивании средств и создании учетной записи разработчика см. в статье "Начало работы ".
Свяжите приложение с магазином. Дополнительные сведения см. в статье "Создание приложения устройства UWP".
Создайте метаданные устройства для вашего принтера, которые будут связаны с вашим приложением. Дополнительные сведения см. в разделе "Создание метаданных устройства".
Создайте пользовательский интерфейс для главной страницы приложения. Все приложения устройств UWP можно запустить с начального экрана, где они отображаются в полноэкранном режиме. Используйте интерфейс "Пуск", чтобы выделить продукт или службы таким образом, чтобы соответствовать определенным фирменной символике и функциям ваших устройств. Специальных ограничений на тип элементов управления пользовательского интерфейса, которые он может использовать, не существует. Чтобы приступить к разработке полноэкранного интерфейса, ознакомьтесь с принципами проектирования в Microsoft Store.
Если вы пишете приложение с помощью C# или JavaScript, добавьте проекты PrinterExtensionLibrary и DeviceAppForPrintersLibrary в решение приложения устройства UWP. Вы можете найти каждый из этих проектов в параметрах печати и образце уведомлений о печати .
Так как C++ может получить доступ к COM напрямую, приложения C++ не требуют отдельной библиотеки для работы с контекстом устройства принтера на основе COM.
Шаг 1. Регистрация фоновой задачи
Чтобы Windows распознала, что приложение может обрабатывать уведомления о печати, оно должно зарегистрировать расширение фоновых задач для уведомлений о печати. Это расширение объявляется в элементе Extension, с атрибутом Category, установленным на windows.backgroundTasks, и атрибутом EntryPoint, установленным на BackgroundTask.PrintBackgroundTask. Расширение также содержит элемент, указывающий Task на то, что он поддерживает systemEvent типы задач.
Вы можете добавить расширение фоновой задачи печати на вкладке «Объявления» в конструкторе манифеста Microsoft Visual Studio. Можно также вручную изменить XML-код манифеста пакета приложения с помощью редактора XML (текста). Щелкните правой кнопкой мыши файл Package.appxmanifest в Обозреватель решений для параметров редактирования.
В этом примере показано расширение фоновой задачи в элементе Extension в том виде, в котором оно представлено в файле манифеста пакета приложения 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>
Шаг 2. Настройка метаданных устройства
Если вы используете Мастер разработки метаданных устройства для связывания приложения с устройством, убедитесь, что на странице сведения о приложении устройства UWP заполните поле обработчики уведомлений. Это помогает гарантировать, что фоновая задача приложения вызывается во время уведомления о печати.
Пошаговые инструкции по изменению метаданных устройства см. в разделе "Тестирование ".
Шаг 3. Создание пользовательского интерфейса
Прежде чем создавать приложение, необходимо работать с дизайнерами и вашей маркетинговой командой для разработки пользовательского интерфейса. Взаимодействие с пользователем должно проецировать аспекты фирменной символики вашей компании и помочь вам создать соединение с пользователями.
Рекомендации по проектированию
Важно ознакомиться с рекомендациями по проектированию приложений для Microsoft Store, прежде чем разрабатывать плитки и значки. Рекомендации помогают обеспечить интуитивно понятный интерфейс, совместимый с другими приложениями UWP.
На главной странице приложения следует помнить, что Windows 8.1 может отображать несколько приложений в разных размерах на одном мониторе. Ознакомьтесь со следующими рекомендациями, чтобы узнать больше о том, как приложение может легко перетекать между размерами экрана, размерами окна и ориентациями.
- Рекомендации по размеру окна и масштабированию на экраны
- Рекомендации по изменению размеров окон до высоких и узких макетов
Лучшие практики
Не включайте слова действий в уведомления. В сообщении уведомления не используйте текст, который сообщает пользователям отправить, нажать или выбрать уведомление. Пользователи уже понимают, что они могут нажать всплывающее уведомление, чтобы найти дополнительные сведения. Например, просто напишите "У вашего принтера мало чернил", а не "У вашего принтера мало чернил". Нажмите, чтобы устранить неполадки.
Оставайтесь простыми в взаимодействии. Все, что отображается в интерфейсе уведомлений, должно быть связано с уведомлением. Например, страница уведомлений о пробке бумаги должна содержать только ссылки и сведения об устранении этой проблемы. Он не должен содержать ссылки на несвязанные материалы, такие как покупка чернил или другая информация о поддержке.
Используйте мультимедиа. Используйте фактические фотографии, видео или иллюстрации устройства, чтобы помочь пользователям быстро устранить проблему с устройством.
Сохраняйте пользователей в контексте приложения. При предоставлении сведений о проблеме не ссылайтесь на интернет или другие материалы поддержки. Удерживайте пользователя в контексте приложения.
Шаг 4. Создание фоновой задачи
Если приложение регистрирует фоновую задачу для уведомлений о печати, он должен предоставить обработчик для активации фоновой задачи. В примере PrintBackgroundTask класс обрабатывает уведомления о печати.
Если состояние принтера не требует немедленного вмешательства пользователя, обновите значок вместо того, чтобы показывать всплывающее уведомление. Например, для условия низкого уровня чернил достаточно обновления плитки. Но если в принтере закончились чернила, приложение может показать всплывающее уведомление.
Сохранение сведений о уведомлении
Фоновая задача не может запускать приложение переднего плана напрямую, только пользователь может: из плитки, всплывающего уведомления или запуска. Таким образом, чтобы приложение переднего плана могло получить доступ к подробностям уведомления о печати, фоновая задача сохраняет их в локальном хранилище. Дополнительные сведения об использовании локального хранилища см. в кратком руководстве: данные локального приложения.
При активации уведомления о печати Windows запускает фоновую задачу, вызывая его Run метод. Данные уведомления передаются фоновой задаче с помощью параметра метода, который необходимо привести к типу Windows.Devices.Printers.Extensions.PrintNotificationEventDetails. Свойства PrinterName и EventData этого объекта содержат имя принтера и сообщение Bidi соответственно.
В этом примере показан метод фоновой задачи Run в файле PrintBackgroundTask.cs , где сведения о уведомлении печати сохраняются в параметрах приложения до вызова методов всплывающего уведомления, плитки и индикатора событий.
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();
}
Обновление плитки
Когда сведения уведомления печати отправляются в метод UpdateTile, пример фоновой задачи демонстрирует, как отобразить их на плитке. Дополнительные сведения о плитках см. в обзоре плиток и уведомлений о плитках.
В этом примере показан метод фоновой задачи UpdateTile в файле 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);
}
Обновление значка
В этом методе UpdateBadge показано, как использовать класс BadgeNotification для обновления значка. Дополнительные сведения о плитках см. в обзоре значков.
В этом примере показан метод фоновой задачи UpdateBadge в файле 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);
}
Произнести тост
Всплывающее уведомление — это кратковременное сообщение пользователю, содержащее актуальную, чувствительную ко времени информацию и предоставляющее быстрый доступ к связанному содержимому в приложении. Тост-уведомления должны рассматриваться пользователями как приглашение вернуться в приложение, чтобы следить за чем-то интересным. Дополнительные сведения см. в разделе Обзор всплывающих уведомлений.
Чтобы включить всплывающие уведомления, приложение должно быть зарегистрировано как поддерживающее эту функцию в манифесте пакета приложения. В элементе VisualElements задайте для атрибута ToastCapable значение true.
Important
Мы не рекомендуем всегда показывать всплывающее уведомление, особенно для событий, не требующих действий. Это может стать раздражающим для пользователей и заставить их отключить все уведомления из приложения. Для событий, которые не требуют немедленного внимания пользователя, рекомендуется обновлять только плитку и значок, а не показывать тостовое уведомление.
В этом примере показан ToastCapable атрибут в элементе, как он отображается в VisualElements файле манифеста пакета приложения 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>
В этом примере используется ShowToast метод файла PrintBackgroundTask.cs . Он показывает, как создать тост на основе двух строк, именованных title и 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);
}
Шаг 5. Выполнение активации
Когда уведомление о печати активирует фоновую задачу, приложение можно запустить, нажав на всплывающее уведомление или плитку. Если приложение активируется из любого из этих приложений, параметр передается приложению через LaunchActivatedEventArgs.arguments свойство. Дополнительные сведения об активации и жизненном цикле приложения Microsoft Store см. в разделе "Жизненный цикл приложений".
Чтобы определить, активировано ли приложение в одном из этих случаев, обработайте OnLaunched событие и проверьте аргументы событий, передаваемые обработчику событий. Если аргументы события имеют значение null, приложение было активировано пользователем из Start. Если аргументы события не являются null, приложение было запущено из уведомления-всплывашки или плитки интерфейса.
В этом примере используется OnLaunched метод файла App.xaml.cs . В нем показано, как обрабатывать активацию из всплывающих элементов или плиток.
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();
}
Шаг 6. Сведения о уведомлении о доступе
Поскольку фоновая задача не может напрямую запустить приложение с интерфейсом, сведения об уведомлении печати должны быть сохранены в параметрах приложения, чтобы приложение с интерфейсом могло получить к ним доступ. Дополнительные сведения об использовании локального хранилища см. в кратком руководстве: данные локального приложения.
В этом примере показано, как имя принтера и сообщение Bidi извлекаются из параметров приложения в примере параметров печати и уведомлений о печати . Код находится в методе DisplayBackgroundTaskTriggerDetailsфайла InkLevel.xaml.cs . Значения keyPrinterNameключевых индексов и keyAsyncUIXMLявляются теми же строковыми константами, которые используются в фоновой задаче , 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
Прежде чем протестировать приложение устройства UWP, его необходимо связать с принтером с помощью метаданных устройства.
Вам необходимо получить копию пакета метаданных устройства принтера, чтобы добавить в него информацию о приложении устройства. Если у вас нет метаданных устройства, его можно создать с помощью мастера создания метаданных устройств, как описано в статье "Создание метаданных устройства" для приложения устройства UWP.
Чтобы использовать мастер разработки метаданных устройств, необходимо установить Microsoft Visual Studio Professional, Microsoft Visual Studio Ultimate или автономный пакет SDK для Windows 8.1, прежде чем выполнить действия, описанные в этой статье. Установка Microsoft Visual Studio Express для Windows устанавливает версию пакета SDK, которая не включает мастер.
Следующие шаги по созданию приложения и установке метаданных устройства.
Включите тестовую подпись.
Запустите мастер создания метаданных устройства из %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86, дважды щелкнув DeviceMetadataWizard.exe
В меню «Инструменты» выберите «Включить тестовую подпись».
Перезагрузка компьютера
Создайте решение, открыв файл решения (.sln). Нажмите клавишу F7 или выберите Построить решение> в верхнем меню после загрузки примера.
Отключите и удалите принтер. Этот шаг необходим, чтобы Windows считывала обновленные метаданные устройства при следующем обнаружении устройства.
Изменение и сохранение метаданных устройства. Чтобы подключить приложение устройства к вашему устройству, необходимо установить между ними связь.
Если метаданные устройства еще не созданы, см. статью "Создание метаданных устройства" для приложения устройства UWP.
Если мастер разработки метаданных устройства еще не открыт, запустите его с %ProgramFiles(x86)%\Windows Kits\8.1\bin\x86, дважды щелкнув DeviceMetadataWizard.exe.
Выберите "Изменить метаданные устройства". Этот параметр позволяет изменить существующий пакет метаданных устройства.
В диалоговом окне "Открыть" найдите пакет метаданных устройства, связанный с приложением устройства UWP. (Он имеет расширение файла devicemetadata-ms.)
На странице Указать сведения о приложении устройства UWP введите информацию о приложении Microsoft Store в поле приложения устройства UWP. Выберите импорт файла манифеста приложения UWP , чтобы автоматически ввести имя пакета, имя издателя и идентификатор приложения UWP.
Если приложение регистрируется для уведомлений принтера, заполните поле обработчиков уведомлений . Введите имя обработчика событий печати в идентификаторе события. В ресурсе событий введите имя файла, в котором находится этот код.
По завершении нажмите кнопку "Далее ", пока не получите страницу "Готово ".
На странице "Проверка пакета метаданных устройства " убедитесь, что все параметры верны и установите флажок "Копировать пакет метаданных устройства" в хранилище метаданных на локальном компьютере . Затем выберите Сохранить.
Повторно подключите принтер, чтобы Windows считывала обновленные метаданные устройства при подключении устройства.
Troubleshooting
Проблема: не отображается уведомление "toast" по умолчанию
Если уведомление о печати по умолчанию не отображается, когда ожидается...
Возможные причины: Проверка подписи не включена. Сведения о включении см. в разделе "Отладка" в этой статье.
Возможные причины: Всплывающие уведомления отключены политиками домена. Оставьте домен и повторите попытку.
Возможные причины: Принтер не реализовал DriverEvents. Убедитесь, что драйвер версии 4 поддерживает Bidi и DriverEvents. Дополнительные сведения см. в разделе "Поддержка драйверов для настраиваемого пользовательского интерфейса".
Возможные причины: Компьютер не имеет недавнего задания в очереди принтера. Убедитесь, что значок принтера отображается в правом нижнем углу экрана. В противном случае отправьте другое задание печати.
Возможные причины: Точка входа для фоновой задачи (
IBackgroundTask) находится в том же проекте, что и приложение переднего плана. Этот сценарий не разрешен. Отделите совершенно новый класс для обработчика фоновых задач.Возможная причина: Класс, служащий точкой входа для уведомлений в вашем приложении, неправильно указан в манифесте приложения или в метаданных устройства, что приводит к сбою приложения в фоновом процессе, из-за чего тост-уведомления не отображаются. Проверьте наличие следующих проблем:
Убедитесь, что точка входа указана правильно на вкладке "Объявления" конструктора манифестов . Он должен быть в виде Namespace.ClassName для C# и C++. Для JavaScript это должен быть относительный путь к файлу .js.
Приложение JavaScript должно вызывать close() после завершения.
Класс C# должен реализовать Windows.ApplicationModel.Background.IBackgroundTask и должен иметь открытый метод void
Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance).Класс C++ должен реализовать Windows::ApplicationModel::Background::IBackgroundTask и должен иметь
virtual void Run(Windows::ApplicationModel::Background::IBackgroundTaskInstance^ taskInstance)метод.
Связанные статьи
- Обзор значков (приложения UWP)
- Обзор плиток и уведомлений на плитках (приложения UWP)
- Рекомендации и контрольный список для плиток и значков (приложения UWP)
- Обзор тост-уведомлений (приложения UWP)
- Рекомендации и контрольный список для всплывающих уведомлений (приложения UWP)
- Поддержка драйвером настраиваемого пользовательского интерфейса
- Разработка драйверов печати версии 4
- Интерфейсы расширения принтера (драйвер печати версии 4)
- Двунаправленная связь
- Начало работы с приложениями UWP
- Создание приложения устройства UWP (пошаговое руководство)
- Создание метаданных устройства для приложения устройства UWP (пошаговое руководство)