Добавление поддержки функции "Близкие люди" в приложение
начиная с обновление Windows 10 за май 2019 г. (версия 1903), новые установки Windows 10 по умолчанию больше не будут показывать ‘ людей на панели задач ’ . Клиенты могут включить эту функцию, щелкнув правой кнопкой мыши панель задач и нажав кнопку " “ отобразить людей" на панели задач.” разработчикам не рекомендуется добавлять поддержку пользователей в свои приложения, и вы должны посетить блог Windows Developer , чтобы получить дополнительные сведения о оптимизации приложений для Windows 10.
Функция "Близкие люди" позволяет пользователям закреплять контакты из приложения непосредственно на панели задач. При этом создается новый объект контакта, с который они могут взаимодействовать несколькими способами. В этой статье показано, как добавить поддержку этой функции, чтобы пользователи могли закреплять контакты непосредственно из приложения. Когда контакты закреплены, становятся доступны новые типы взаимодействия с пользователем, такие как публикация для близких людей и уведомления.
Требования
- Windows 10 и Microsoft Visual Studio 2019. Сведения об установке см. в разделе Настройка Visual Studio.
- Знание основ C# или схожих объектно-ориентированных языков программирования. Сведения о начале работы с C# см. в разделе Создание приложения "Привет, мир".
Обзор
Чтобы реализовать поддержку функции "Близкие люди" в приложении, необходимо выполнить три действия:
После ’ этого приложение отобразится на панели контактов для контактов с заметками.
Объявление поддержки контракта
Чтобы объявить поддержку контракта "Близкие люди", откройте приложение в Visual Studio. В обозревателе решений щелкните правой кнопкой мыши файл Package.appxmanifest и выберите команду Открыть с помощью. В меню выберите XML (текстовый редактор ) и нажмите кнопку ОК. Внесите следующие изменения в манифест:
До
После
После этого ваше приложение можно будет запускать через контракт windows.ContactPanel, который позволяет взаимодействовать с панелями контакта.
Аннотация контактов
Чтобы включить отображение контактов из вашего приложения на панели задач с использованием области "Близкие люди", необходимо записать их в хранилище контактов Windows. Сведения о записи контактов см. в разделе Пример карточки контакта.
Ваше приложение также должно записать аннотацию для каждого контакта. Аннотации — это компоненты данных из приложения, связанные с контактом. Аннотация должна содержать активируемый класс, соответствующий требуемому представлению, в элементе ProviderProperties, а также должна объявить поддержку операции ContactProfile.
Аннотировать контакты можно в любой момент во время работы приложения, но в общем случае необходимо делать это, как только они добавляются в хранилище контактов Windows.
“AppID ” — это имя семейства пакетов, за которым следует ‘ !’ и идентификатор активируемого класса. Чтобы найти имя семейства пакетов, откройте Package. appxmanifest в редакторе по умолчанию и перейдите на ” вкладку Упаковка. Здесь “ приложение ” — это класс активируемого, соответствующий представлению запуска приложения.
Предоставление контактам возможности приглашать новых потенциальных пользователей
По умолчанию приложение отображается на панели контактов только для указанных вами контактов. Это позволяет избежать путаницы с контактами, ’ с которыми можно взаимодействовать через приложение. Если требуется, чтобы приложение отображалось для контактов, о которых не ’ известно вашему приложению (например, чтобы пригласить пользователей добавить контакт к своей учетной записи), можно добавить в манифест следующее:
До
После
После этого изменения приложение будет отображаться как доступный параметр на панели контактов для всех закрепленных пользователем контактов. Когда приложение активируются с помощью контракта панели контактов, необходимо проверить, известен ли этот контакт вашему приложению. В противном случае вы увидите ’ новое взаимодействие с приложением.
Поддержка почтовых приложений
Если вы пишете приложение электронной почты, вам не ’ нужно добавлять заметки к каждому контакту вручную. Если объявить поддержку панели контактов и протокола mailto:, приложение автоматически будет отображаться для пользователей с электронным адресом.
Запуск на панели контактов
Когда приложение появится на панели контактов для некоторых или всех пользователей, необходимо обрабатывать активацию с помощью контракта панели контактов.
Если приложение активируется с этим контрактом, оно получает объект ContactPanelActivatedEventArgs. Он содержит идентификатор контакта, с которым ваше приложение пытается взаимодействовать при запуске, и объект ContactPanel. Вам следует сохранить ссылку на этот объект ContactPanel, что позволит взаимодействовать с панелью.
Объект ContactPanel предоставляет два события, которые ваше приложение должно прослушивать.
- Событие LaunchFullAppRequested отправляется, когда пользователь вызывает элемент интерфейса, который запрашивает запуск полного приложения в отдельном окне. Ваше приложение отвечает за собственный запуск и передачу необходимого контекста. Это можно сделать без необходимости ’ (например, через запуск протокола).
- Событие Closing отправляется, когда приложение закрывается, что позволяет сохранить любой контекст.
С помощью объекта ContactPanel также можно задать цвет фона заголовка панели контактов (если он не задан, используется цвет системной темы) и программно закрыть панель контактов.
Поддержка индикаторов для уведомлений
Если вы хотите, чтобы на контактах, закрепленных на панели задач, появлялись индикаторы при получении новых уведомлений, связанных с этим контактом, из вашего приложения, необходимо включить параметр hint-people во всплывающих уведомлениях и явные Уведомления близких людей.
Для добавления индикатора контакту узел всплывающего уведомления верхнего уровня должен содержать параметр hint-people для указания контакта-отправителя или связанного контакта. Этот параметр может принимать любое из перечисленных ниже значений.
- Адрес электронной почты
- Например, johndoe@mydomain.com
- Например, 888-888-8888
- Например, ремотеид: 1234
Ниже приведен пример определения всплывающего уведомления, связанного с определенным человеком.
Если ваше приложение использует API ContactStore и свойство StoredContact.RemoteId для связи контрактов, сохраненных на компьютере, с контрактами, сохраненными удаленно, важно, чтобы значение свойства RemoteId было и стабильным, и уникальным. Это значит, что удаленный идентификатор должен неизменно обозначать одну учетную запись пользователя и содержать уникальный тег, чтобы гарантировать отсутствие конфликтов с удаленными идентификаторами других контактов на компьютере, включая контакты, которыми владеют другие приложения. Если уникальность и стабильность удаленных идентификаторов, используемых вашим приложением, нельзя гарантировать, то можно использовать класс RemoteIdHelper, показанный ниже в этом разделе, чтобы добавить ко всем вашим удаленным идентификаторам уникальный тег перед добавлением их к системе. Или можно вовсе отказаться от использования свойства RemoteId и создать собственное расширенное свойство, в котором будут храниться удаленные идентификаторы для ваших контактов.
Класс The PinnedContactManager
Класс PinnedContactManager используется для управления контактами, которые закреплены на панели задач. Этот класс позволяет закрепить и открепить контакты, определить, закреплен ли контакт и поддерживается ли закрепление на той или иной поверхности системой, в которой сейчас выполняется приложение.
Вы можете получить объект PinnedContactManager с помощью метода GetDefault:
Закрепление и открепление контактов
Теперь вы можете закреплять и откреплять контакты с помощью созданного объекта PinnedContactManager. Методы RequestPinContactAsync и RequestUnpinContactAsync предоставляют пользователям диалоговые окна подтверждения, поэтому их следует вызывать из вашего потока ASTA или пользовательского интерфейса.