Adicionar suporte para comandos de suplemento no Outlook em dispositivos móveis

O uso de comandos de suplemento no Outlook em dispositivos móveis permite que seus usuários acessem a mesma funcionalidade (com algumas limitações) que eles já têm em Outlook na Web, no Windows (clássico e novo (versão prévia)) e no Mac. Adicionar suporte para o Outlook mobile requer atualizar o manifesto de suplemento e possivelmente alterar seu código para cenários móveis.

Atualizar o manifesto

A primeira etapa para habilitar comandos de suplemento no Outlook mobile é defini-los no manifesto de suplemento.

  1. Na matriz "extensions.ribbons.requirements.formFactors", adicione "mobile" como um item. Quando você terminar, a matriz deve se parecer com a seguinte.

    "formFactors": [
        "mobile",
        <!-- Typically there will be other form factors listed. -->
    ]
    
  2. Se o suplemento usar o modo Participante de Compromisso, como um suplemento que integra um provedor de um aplicativo CRM (gerenciamento de relacionamento com o cliente ou observação), adicione "logEventMeetingDetailsAttendee" à matriz "extensions.ribbons.contexts". Apresentamos um exemplo a seguir.

    "contexts": [
        "meetingDetailsAttendee",
        "logEventMeetingDetailsAttendee"
    ],
    
  3. Se o suplemento usar um provedor de reuniões online integrado, adicione "onlineMeetingDetailsOrganizer" à matriz "extensions.ribbons.contexts". Apresentamos um exemplo a seguir.

    "contexts": [
        "meetingDetailsOrganizer",
        "onlineMeetingDetailsOrganizer"
    ],
    
  4. Na matriz "extensions.ribbons.tabs", localize a guia com o "builtInTabId" de "TabDefault". Adicione uma matriz filho "customMobileRibbonGroups" a ela (como um par da propriedade "grupos" existente). Dentro dessa matriz, crie um objeto e faça o seguinte:

    • Defina valores apropriados de "id" e "rótulo".
    • Create um objeto na matriz "controles" para representar um botão e configurá-lo da seguinte maneira.
      • Defina valores apropriados de "id" e "rótulo".
      • Defina "buttonType" como "MobileButton".
      • Atribua uma função à propriedade "actionId". Isso deve corresponder à "id" do objeto na matriz "extensions.runtimes.actions".
      • Certifique-se de ter todos os nove ícones necessários.

    Apresentamos um exemplo a seguir.

    "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"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ]    
    

Considerações sobre código

Criar um suplemento para o Mobile traz algumas considerações adicionais.

Usar REST em vez de Serviços Web do Exchange

O método Office.context.mailbox.makeEwsRequestAsync não tem suporte no Outlook mobile. Os suplementos devem preferir obter as informações da API Office.js sempre que possível. Se os suplementos exigem informações que não são expostas pela API Office.js devem usar as APIs REST do Outlook para acessar as caixas de correio do usuário.

O conjunto de requisitos da caixa de correio 1.5 introduziu uma nova versão do Office.context.mailbox.getCallbackTokenAsync que pode solicitar um token de acesso compatível com as APIs REST e uma nova propriedade Office.context.mailbox.restUrl que pode ser usada para encontrar o ponto de extremidade da API REST para o usuário.

Pinçar e zoom

Por padrão, os usuários podem usar o gesto "beliscar zoom" para ampliar os painéis de tarefa. Se isso não fizer sentido para o seu cenário, não deixe de desabilitar o zoom de beliscão em seu HTML.

Fechar painéis de tarefas

No Outlook mobile, os painéis de tarefas tomam toda a tela e, por padrão, exigem que o usuário os feche para retornar à mensagem. Considere usar o método Office.context.ui.closeContainer para fechar o painel de tarefas quando o cenário estiver concluído.

Modo de redação e compromissos

Atualmente, os suplementos no Outlook mobile só dão suporte à ativação ao ler mensagens. Os suplementos não são ativados ao compor mensagens ou ao exibir ou compor compromissos. No entanto, existem algumas exceções.

  1. Os suplementos integrados do provedor de reuniões online são ativados no modo Organizador de Compromissos. Para obter mais informações sobre essa exceção (incluindo APIs disponíveis), consulte Create um suplemento móvel do Outlook para um provedor de reunião online.
  2. Suplementos que registram anotações de compromisso e outros detalhes para o CRM (gerenciamento de relacionamento com o cliente) ou serviços de observação são ativados no modo Participante de Compromisso. Para obter mais informações sobre essa exceção (incluindo APIs disponíveis), confira Notas de compromisso de log para um aplicativo externo nos suplementos móveis do Outlook.
  3. Os suplementos baseados em eventos são ativados quando o OnNewMessageCompose evento ocorre. Para obter mais informações sobre essa exceção (incluindo APIs adicionais com suporte), confira Implementar ativação baseada em evento nos suplementos móveis do Outlook.

APIs com suporte

Embora o outlook mobile dê suporte ao conjunto de requisitos da Caixa de Correio 1.5, agora você pode implementar APIs adicionais de conjuntos de requisitos posteriores para estender ainda mais a funcionalidade do seu suplemento no Outlook mobile. Para obter diretrizes sobre quais APIs você pode implementar no suplemento móvel, consulte APIs JavaScript do Outlook com suporte no Outlook em dispositivos móveis.

Confira também