Formas alternativas de passar mensagens para uma caixa de diálogo de sua página de host
A maneira recomendada de passar dados e mensagens de uma página pai para uma caixa de diálogo filho é com o messageChild
método descrito em Usar a API de diálogo do Office em seus Suplementos do Office. Se o suplemento estiver em execução em uma plataforma ou host que não dá suporte ao conjunto de requisitos dialogApi 1.2, há duas outras maneiras de passar informações para a caixa de diálogo.
Armazene as informações em algum lugar acessível à janela do host e à caixa de diálogo. As duas janelas não compartilham um armazenamento de sessão comum (a propriedade Window.sessionStorage ), mas se tiverem o mesmo domínio (incluindo o número da porta, se houver), compartilharão um armazenamento local comum.
Observação
As alterações na segurança do navegador afetarão sua estratégia de tratamento de token.
- Se o suplemento for executado em Office na Web no navegador Versão Prévia do Microsoft Edge (não Chromium) ou Safari, a caixa de diálogo e o painel de tarefas não compartilharão o mesmo armazenamento local, portanto, ele não poderá ser usado para se comunicar entre eles.
- A partir da versão 115 de navegadores baseados em Chromium, como Chrome e Edge, a partição de armazenamento está sendo testada para impedir o rastreamento entre sites de canal lateral específico (consulte também políticas de navegador do Microsoft Edge). Isso significa que os dados armazenados por APIs de armazenamento, como o armazenamento local, só estão disponíveis para contextos com a mesma origem e o mesmo site de nível superior. Para contornar isso, no navegador, vá para chrome://flags ou edge://flags e defina o sinalizador Experimental de partição de armazenamento de terceiros (#third-armazenamento-particionamento) como Desabilitado. Sempre que possível, recomendamos passar dados entre a caixa de diálogo e o painel de tarefas usando os métodos messageParent e messageChild , conforme descrito em Usar a API de diálogo do Office em seus Suplementos do Office.
Adicionar parâmetros de consulta à URL que é transmitida para
displayDialogAsync
.
Usar o armazenamento local
Para usar o armazenamento local, chame o setItem
método do window.localStorage
objeto na página host antes da displayDialogAsync
chamada, como no exemplo a seguir.
localStorage.setItem("clientID", "15963ac5-314f-4d9b-b5a1-ccb2f1aea248");
O código na caixa de diálogo lê o item quando ele é necessário, como no exemplo a seguir.
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
à URL que é passada para displayDialogAsync
. (Ele é acrescentado após os parâmetros de consulta personalizados, se houver. Ele não é acrescentado a nenhuma URLs subsequente para a qual a caixa de diálogo navega.) A Microsoft pode alterar o conteúdo desse valor ou removê-lo inteiramente no futuro, portanto, 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 ). Novamente, seu código não deve ler nem gravar nesse valor.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de