Реализация закрепляемой области задач в Outlook
Форма пользовательского интерфейса области задач для команд надстройки открывает вертикальную область задач справа от открытого сообщения или приглашения на собрание. Это позволяет надстройке предоставлять пользовательский интерфейс для более подробных взаимодействий, таких как заполнение нескольких текстовых полей. Эта область задач может отображаться в области чтения при просмотре списка сообщений, что позволяет быстро обрабатывать сообщение.
Однако по умолчанию, если пользователь имеет область задач надстройки, открытую для сообщения в области чтения, а затем выбирает новое сообщение, область задач автоматически закрывается. Если надстройка используется часто, пользователь может закрепить эту область, чтобы не активировать ее повторно для каждого сообщения. С помощью закрепляемых областей задач надстройка может предоставить пользователю этот параметр.
Примечание.
Хотя функция закрепляемой области задач появилась в наборе требований 1.5, в настоящее время она доступна только подписчикам Microsoft 365, используя следующие возможности:
- Современная версия Outlook в Интернете
- Новый Outlook в Windows
- Классическая Outlook 2016 или более поздней версии в Windows (сборка 7668.2000 или более поздней версии для пользователей в текущих каналах или каналах предварительной оценки Microsoft 365, сборка 7900.xxxx или более поздней версии для пользователей в отложенных каналах)
- Outlook на Mac (версия 16.13 (18050300) или более поздняя)
Важно!
Закрепленные области задач недоступны для следующих компонентов:
- Встречи и собрания
- Outlook.com
Поддерживаемые режимы Outlook
Закрепленные области задач поддерживаются как в режимах Compose сообщений, так и в режиме чтения сообщений в Outlook. Однако закрепление не поддерживается в разных режимах. Это связано с тем, что надстройка может иметь разные пользовательские интерфейсы для кнопок и областей задач в каждом режиме. Например, если пользователь закрепляет область задач надстройки при чтении сообщения, а затем создает новое сообщение, область задач надстройки не будет отображаться из создаваемого сообщения. Чтобы просмотреть область задач, пользователь должен активировать надстройку из сообщения, которое он создает. Если пользователь закрепляет область задач, область задач остается закрепленной при следующем создании пользователем другого сообщения.
Поддержка закрепления области задач
Для начала нужно добавить поддержку закрепления в манифест надстройки. Разметка зависит от типа манифеста, используемого надстройкой.
Добавьте свойство pinnable, задается значением true
, к объекту в массиве actions, который определяет кнопку или пункт меню, открывающий область задач. Ниже приведен пример.
"actions": [
{
"id": "OpenTaskPane",
"type": "openPage",
"view": "TaskPaneView",
"displayName": "OpenTaskPane",
"pinnable": true
}
]
Полный пример: элемент управления msgReadOpenPaneButton
в примере манифеста command-demo.
Примечание.
Закрепление области задач автоматически поддерживается в надстройке, которая активируется без включения области чтения или первого выбранного сообщения. Дополнительные сведения см. в статье Активация надстройки Outlook без включения области чтения или выбранного сообщения.
Обновление пользовательского интерфейса на основе выбранного сообщения
Чтобы обновлять пользовательский интерфейс или внутренние переменные области задач на основе текущего элемента, необходимо зарегистрировать обработчик событий, чтобы получать уведомления об изменении.
Реализация обработчика событий
Обработчик событий должен принимать один параметр, а именно — объектный литерал. Для свойства type
этого объекта будет установлено значение Office.EventType.ItemChanged
. При вызове события объект Office.context.mailbox.item
уже обновлен с учетом выбранного элемента.
function itemChanged(eventArgs) {
// Update UI based on the new current item.
updateTaskPaneUI(Office.context.mailbox.item);
}
Важно!
Реализация обработчиков событий для ItemChanged
события должна проверка, имеет ли элемент Office.content.mailbox.item значение NULL.
// Example implementation.
function updateTaskPaneUI(item) {
// Assuming that item is always a read item (instead of a compose item).
if (item != null) console.log(item.subject);
}
Регистрация обработчика событий
Используйте метод Office.context.mailbox.addHandlerAsync, чтобы зарегистрировать обработчик события Office.EventType.ItemChanged
. Это необходимо сделать в Office.onReady
функции области задач.
Office.onReady(() => {
$(document).ready(() => {
// Set up the ItemChanged event.
Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, itemChanged);
updateTaskPaneUI(Office.context.mailbox.item);
});
});
Закрепление области задач при множественном выборе
В Outlook в Интернете и новом Outlook в Windows при открытии области задач надстройки, реализующей функцию множественного выбора элементов, она автоматически закрепляется в клиенте Outlook. Он остается закрепленным, даже если пользователь переключается на другой почтовый элемент или выбирает значок закрепления в области задач. Область задач можно закрыть, только нажав кнопку Закрыть в области задач.
И наоборот, в классических Outlook для Windows и Outlook на Mac область задач надстройки с несколькими выборами не закрепляется автоматически и закрывается при переключе пользователем на другой почтовый элемент.
Развертывание для пользователей
Если вы планируете опубликовать надстройку Outlook в AppSource и она настроена с помощью закрепляемой области задач, закрепленное содержимое надстройки не должно быть статическим. То есть закрепленная содержимое должна изменяться в зависимости от сообщения или встречи, которые в настоящее время открыты или выбраны в почтовом ящике. Это гарантирует, что надстройка пройдет проверку AppSource.
См. также
Пример надстройки, в которой реализована закрепляемая область задач, на сайте GitHub: command-demo.
Office Add-ins