Поделиться через


Добавлена поддержка команд надстроек в Outlook на мобильных устройствах

Использование команд надстроек в Outlook на мобильных устройствах позволяет пользователям получать доступ к той же функциональности (с некоторыми ограничениями), что и в Outlook в Интернете, в Windows (классическая и новая (предварительная версия)) и на Mac. Чтобы добавить поддержку Outlook Mobile, необходимо обновить манифест надстройки и, возможно, изменить код для мобильных сценариев.

Обновление манифеста

Первым шагом к включению команд надстроек в Outlook Mobile является определение их в манифесте надстройки.

  1. В массиве extensions.ribbons.requirements.formFactors добавьте mobile в качестве элемента. По завершении массив должен выглядеть следующим образом.

    "formFactors": [
        "mobile",
        <!-- Typically there will be other form factors listed. -->
    ]
    
  2. Если надстройка использует режим участника встреч, например надстройка, которая интегрирует поставщика приложения для создания заметок или управления отношениями с клиентами (CRM), добавьте logEventMeetingDetailsAttendee в массив extensions.ribbons.contexts. Ниже приведен пример.

    "contexts": [
        "meetingDetailsAttendee",
        "logEventMeetingDetailsAttendee"
    ],
    
  3. Если надстройка использует интегрированный поставщик собраний по сети, добавьте onlineMeetingDetailsOrganizer в массив extensions.ribbons.contexts. Ниже приведен пример.

    "contexts": [
        "meetingDetailsOrganizer",
        "onlineMeetingDetailsOrganizer"
    ],
    
  4. В массиве extensions.ribbons.tabs найдите вкладку со значением builtInTabId элемента TabDefault. Добавьте в него дочерний массив customMobileRibbonGroups (в качестве однорангового узла существующего свойства groups). Внутри этого массива создайте объект и выполните следующие действия:

    • Задайте соответствующие значения id и label.
    • Create объект в массиве controls, чтобы представить кнопку и настроить ее следующим образом.
      • Задайте соответствующие значения id и label.
      • Задайте для buttonType значение MobileButton.
      • Назначьте функцию свойству actionId. Он должен соответствовать идентификатору объекта в массиве extensions.runtimes.actions.
      • Убедитесь, что у вас есть все девять необходимых значков.

    Ниже приведен пример.

    "tabs": [
        {
            "builtInTabId": "TabDefault",
            "groups": [
                <-- non-mobile group objects omitted -->
            ],
            "customMobileRibbonGroups": [
                {
                    "id": "mobileApptComposeGroup",
                    "label": "Contoso Meeting",
                    "controls": [
                        { 
                            "id": "mobileInsertMeetingButton",
                            "label": "Add Meeting",
                            "buttonType": "MobileButton",
                            "actionId": "insertContosoMeeting",
                            "icons": [
                                {
                                    "scale": 1,
                                    "size": 25,
                                    "url": "https://contoso.com/assets/icon-25.png"
                                },
                                {
                                    "scale": 1,
                                    "size": 32,
                                    "url": "https://contoso.com/assets/icon-32.png"
                                },
                                {
                                    "scale": 1,
                                    "size": 48,
                                    "url": "https://contoso.com/assets/icon-48.png"
                                },                                
                                {
                                    "scale": 2,
                                    "size": 25,
                                    "url": "https://contoso.com/assets/icon-25.png"
                                },
                                {
                                    "scale": 2,
                                    "size": 32,
                                    "url": "https://contoso.com/assets/icon-32.png"
                                },
                                {
                                    "scale": 2,
                                    "size": 48,
                                    "url": "https://contoso.com/assets/icon-48.png"
                                },                                
                                {
                                    "scale": 3,
                                    "size": 25,
                                    "url": "https://contoso.com/assets/icon-25.png"
                                },
                                {
                                    "scale": 3,
                                    "size": 32,
                                    "url": "https://contoso.com/assets/icon-32.png"
                                },
                                {
                                    "scale": 3,
                                    "size": 48,
                                    "url": "https://contoso.com/assets/icon-48.png"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]    
    

Особенности кода

При разработке надстроек для мобильных устройств возникают некоторые дополнительные особенности.

Использование REST вместо веб-служб Exchange

Метод Office.context.mailbox.makeEwsRequestAsync не поддерживается в Outlook Mobile. По мере возможности надстройки должны отдавать предпочтение данным из API Office.js. Если надстройкам требуются сведения, которые не предоставляет API Office.js, то для доступа к почтовому ящику пользователя следует использовать интерфейсы REST API Outlook.

Набор обязательных для почтового ящика 1.5 представил новую версию Office.context.mailbox.getCallbackTokenAsync , которая может запрашивать маркер доступа, совместимый с REST API, и новое свойство Office.context.mailbox.restUrl , которое можно использовать для поиска конечной точки REST API для пользователя.

Масштабирование жестами

По умолчанию пользователи могут использовать жест "ущемление масштаба" для увеличения масштаба областей задач. Если это не имеет смысла для вашего сценария, обязательно отключите в HTML-коде масштабирование по сжатию.

Закрытие области задач

В Outlook Mobile области задач занимают весь экран и по умолчанию требуют, чтобы пользователь закрыл их, чтобы вернуться к сообщению. Рассмотрите возможность использования метода Office.context.ui.closeContainer , чтобы закрыть область задач по завершении сценария.

Режим создания и встречи

В настоящее время надстройки в Outlook Mobile поддерживают активацию только при чтении сообщений. Надстройки не активируются при создании сообщений или при просмотре или составлении встреч. однако есть и исключения.

  1. Встроенные надстройки поставщика собраний по сети активируются в режиме организатора встреч. Дополнительные сведения об этом исключении (включая доступные API) см. в разделе Create надстройки Outlook mobile для поставщика онлайн-собраний.
  2. Надстройки, которые регистрируют заметки о встречах и другие сведения для управления отношениями с клиентами (CRM) или службы создания заметок, активируются в режиме участника встречи. Дополнительные сведения об этом исключении (включая доступные API) см. в статье Заметки о встречах для внешнего приложения в надстройках Outlook для мобильных устройств.
  3. Надстройки на основе событий активируются при возникновении OnNewMessageCompose события. Дополнительные сведения об этом исключении (включая дополнительные поддерживаемые API) см. в разделе Реализация активации на основе событий в надстройках Outlook mobile.

Поддерживаемые API

Хотя Outlook Mobile поддерживает до набора обязательных почтовых ящиков 1.5, теперь вы можете реализовать дополнительные API из более поздних наборов требований, чтобы расширить возможности надстройки в Outlook Mobile. Инструкции по api-интерфейсам, которые можно реализовать в мобильной надстройке, см. в статье API JavaScript для Outlook, поддерживаемые в Outlook на мобильных устройствах.

См. также