Активация всплывающих уведомлений из классических приложений
Упакованные и неупакованные приложения Win32 могут отправлять интерактивные всплывающие уведомления так же, как приложения UWP. Сюда входят упакованные приложения (см. раздел Создание нового проекта для упаковаемого классического приложения WinUI 3); упакованные приложения с внешним расположением (см. раздел Предоставление удостоверения пакета путем упаковки с внешним расположением); и неупакованные приложения (см. раздел Создание нового проекта для неупакованного классического приложения WinUI 3).
Однако для неупакованного приложения Win32 необходимо выполнить несколько специальных действий. Это связано с различными схемами активации и отсутствием удостоверения пакета во время выполнения.
В этом разделе перечислены варианты отправки всплывающего уведомления в Windows 10. Каждый параметр полностью поддерживает...
- Сохранение в центре уведомлений
- Возможность активации как из всплывающего меню, так и из центра уведомлений
- Возможность активации, когда EXE-файл не запущен
Все параметры
В таблице ниже представлены параметры поддержки всплывающих уведомлений в классическом приложении и соответствующие поддерживаемые функции. Вы можете выбрать наиболее подходящий для вашего сценария параметр.
Параметр | Визуальные элементы | Действия | Входные данные | Активация внутри процесса |
---|---|---|---|---|
Активатор COM | ✔️ | ✔️ | ✔️ | ✔️ |
Без COM / CLSID объекта-заглушки | ✔️ | ✔️ | ❌ | ❌ |
Предпочитаемый параметр — активатор COM
Это предпочтительный вариант, который подходит для классических приложений и поддерживает все функции уведомлений. Не бойтесь использовать "активатор COM"; у нас есть библиотека для приложений C# и C++, которая упрощает работу, даже если вы никогда не писали COM-сервер до этого.
Визуальные элементы | Действия | Входные данные | Активация внутри процесса |
---|---|---|---|
✔️ | ✔️ | ✔️ | ✔️ |
С помощью параметра "Активатор COM" в приложении можно использовать следующие шаблоны уведомлений и типы активации.
Шаблон и тип активации | Поставляется в плане | Распаковка |
---|---|---|
ToastGeneric (передний план) | ✔️ | ✔️ |
ToastGeneric (фон) | ✔️ | ✔️ |
ToastGeneric (протокол) | ✔️ | ✔️ |
Традиционные шаблоны | ✔️ | ❌ |
Примечание
Если вы добавите активатор COM в существующее упакованое приложение, активации уведомлений Foreground/Background и Legacy активируют активатор COM вместо командной строки.
Сведения об использовании этого параметра см. в разделах Отправка локального всплывающего уведомления из классических приложений C# или Отправка локального всплывающего уведомления из приложений Win32 C++ WRL.
Альтернативный параметр — без COM / CLSID объекта-заглушки
Это альтернативный вариант, если вы не можете реализовать активатор COM. Однако вы пожертвуете некоторыми функциями, такими как поддержка ввода (текстовые поля на всплывающем окне) и активация внутри процесса.
Визуальные элементы | Действия | Входные данные | Активация внутри процесса |
---|---|---|---|
✔️ | ✔️ | ❌ | ❌ |
При использовании этого параметра, если вы поддерживаете настольный компьютер, вы будете гораздо более ограничены в шаблонах уведомлений и типах активации, которые вы можете использовать, как показано ниже.
Шаблон и тип активации | Поставляется в плане | Распаковка |
---|---|---|
ToastGeneric (передний план) | ✔️ | ❌ |
ToastGeneric (фон) | ✔️ | ❌ |
ToastGeneric (протокол) | ✔️ | ✔️ |
Традиционные шаблоны | ✔️ | ❌ |
Для упакованных приложений просто отправляйте всплывающие уведомления, как в приложении UWP. Когда пользователь щелкает всплывающее уведомление, приложение будет запущено в командной строке с аргументами запуска, указанными во всплывающем окне.
Для неупакованных приложений настройте AUMID, чтобы можно было отправлять всплывающие уведомления, а затем укажите CLSID в ярлыке. Это может быть любой случайный GUID. Не добавляйте COM-сервер/активатор. Также необходимо добавить COM CLSID "объекта-заглушки", за счет чего центр уведомлений будет хранить уведомление. Обратите внимание, что можно использовать только всплывающие уведомления по активации протокола, так как заглушка CLSID приведет к прерыванию активации любых других всплывающих уведомлений. Поэтому необходимо обновить приложение для поддержки активации протокола и активировать протокол всплывающего уведомления для собственного приложения.
Ресурсы
Windows developer
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по