Formas alternativas de transmitir mensagens para uma caixa de diálogo a partir da respetiva página de anfitrião

A forma recomendada de transmitir dados e mensagens de uma página principal para uma caixa de diálogo subordinada é através do messageChild método descrito em Utilizar a API de caixa de diálogo do Office nos seus Suplementos do Office. Se o suplemento estiver em execução numa plataforma ou anfitrião que não suporte o conjunto de requisitos DialogApi 1.2, existem duas outras formas de transmitir informações para a caixa de diálogo.

  • Armazene as informações num local acessível tanto à janela do anfitrião como à caixa de diálogo. As duas janelas não partilham um armazenamento de sessão comum (a propriedade Window.sessionStorage ), mas se tiverem o mesmo domínio (incluindo o número da porta, se existirem), partilham um armazenamento local comum.

    Observação

    As alterações à segurança do browser irão afetar a sua estratégia de processamento de tokens.

  • Adicionar parâmetros de consulta à URL que é transmitida para displayDialogAsync.

Usar o armazenamento local

Para utilizar o armazenamento local, chame o setItem método do window.localStorage objeto na página do anfitrião antes da displayDialogAsync chamada, como no exemplo seguinte.

localStorage.setItem("clientID", "15963ac5-314f-4d9b-b5a1-ccb2f1aea248");

O código na caixa de diálogo lê o item quando for necessário, como no exemplo seguinte.

const clientID = localStorage.getItem("clientID");
// You can also use property syntax:
// const clientID = localStorage.clientID;

Usar os parâmetros de consulta

O exemplo a seguir mostra como transmitir dados com um parâmetro de consulta.

Office.context.ui.displayDialogAsync('https://myAddinDomain/myDialog.html?clientID=15963ac5-314f-4d9b-b5a1-ccb2f1aea248');

Para ver um exemplo que usa essa técnica, consulte Inserir gráficos do Excel usando o Microsoft Graph em um Suplemento do PowerPoint.

O código na caixa de diálogo pode analisar a URL e ler o valor do parâmetro.

Importante

O Office adiciona automaticamente um parâmetro de consulta chamado _host_info ao URL que é transmitido para displayDialogAsync. (É anexado após os parâmetros de consulta personalizados, se existirem. Não é anexado a quaisquer URLs subsequentes para os quais a caixa de diálogo navega.) A Microsoft pode alterar o conteúdo deste valor ou removê-lo totalmente no futuro, pelo que o seu código não deve lê-lo. O mesmo valor é adicionado ao armazenamento de sessão da caixa de diálogo (a propriedade Window.sessionStorage ). Mais uma vez, o código não deve ler nem escrever neste valor.