Office.Dialog interface
O objeto que é retornado quando UI.displayDialogAsync é chamado. Ele expõe métodos para registrar manipuladores de eventos e fechar a caixa de diálogo.
Comentários
Conjunto de requisitos: DialogApi
Usada por
Exemplos
// The following example shows how to open a dialog with a specified size. It also shows
// how to register a function to handle the message when Office.UI.messageParent() is called
// in the dialog and how to use that handler to close the dialog.
Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
(asyncResult) => {
const dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
dialog.close();
// Do something to process the message.
});
}
);
// The following example does the same thing in TypeScript.
Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
(asyncResult: Office.AsyncResult) => {
const dialog: Office.Dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg: string) => {
dialog.close();
// Do something to process the message.
});
}
);
Métodos
| add |
Registra um manipulador de eventos. Os dois eventos com suporte são:
|
| close() | Chamado de uma página pai para fechar a caixa de diálogo correspondente. Esse método é assíncrono. Ele não usa um parâmetro de retorno de chamada e não retorna um objeto Promise, portanto, não pode ser aguardado com a |
| message |
Entrega uma mensagem da página do host, como um painel de tarefas ou um arquivo de função sem interface do usuário, para uma caixa de diálogo que foi aberta na página. |
| send |
SOMENTE PARA USO INTERNO. NÃO CHAME SEU CÓDIGO. |
Detalhes do método
addEventHandler(eventType, handler)
Registra um manipulador de eventos. Os dois eventos com suporte são:
DialogMessageReceived. Disparado quando a caixa de diálogo envia uma mensagem para seu pai.
DialogEventReceived. Disparado quando a caixa de diálogo tiver sido fechada ou descarregada de outra forma.
addEventHandler(eventType: Office.EventType, handler: (args: {message: string, origin: string | undefined} | {error: number}) => void): void;
Parâmetros
- eventType
- Office.EventType
Deve ser DialogMessageReceived ou DialogEventReceived.
- handler
-
(args: {message: string, origin: string | undefined} | {error: number}) => void
Uma função que aceita um objeto com uma message propriedade andorigin, se eventType forDialogMessageReceived , ou um objeto com uma error propriedade, se eventType for DialogEventReceived. Observe que a origin propriedade está undefined em clientes que não dão suporte ao DialogOrigin 1.1.
Retornos
void
Exemplos
// The following example shows how to open a dialog with a specified size. It also shows
// how to register a function to handle the message when Office.UI.messageParent() is called
// in the dialog and how to use that handler to close the dialog. The implementation of the processMessage() function is omitted.
Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
(asyncResult) => {
const dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
dialog.close();
processMessage(arg);
});
}
);
// The following example does the same thing in TypeScript.
Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
(asyncResult: Office.AsyncResult) => {
const dialog: Office.Dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg: string) => {
dialog.close();
processMessage(arg);
});
}
);
close()
Chamado de uma página pai para fechar a caixa de diálogo correspondente.
Esse método é assíncrono. Ele não usa um parâmetro de retorno de chamada e não retorna um objeto Promise, portanto, não pode ser aguardado com a await palavra-chave ou a then função. Veja esta prática recomendada para obter mais informações: Abrir outra caixa de diálogo imediatamente após fechar uma
close(): void;
Retornos
void
Exemplos
// The following example shows how to open a dialog with a specified size. It also shows
// how to register a function to handle the message when Office.UI.messageParent() is called
// in the dialog and how to use that handler to close the dialog. The implementation of the processMessage() function is omitted.
Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
(asyncResult) => {
const dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
dialog.close();
processMessage(arg);
});
}
);
// The following example does the same thing in TypeScript.
Office.context.ui.displayDialogAsync("https://www.contoso.com/myDialog.html", { height: 30, width: 20 },
(asyncResult: Office.AsyncResult) => {
const dialog: Office.Dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg: string) => {
dialog.close();
processMessage(arg);
});
}
);
messageChild(message, messageOptions)
Entrega uma mensagem da página do host, como um painel de tarefas ou um arquivo de função sem interface do usuário, para uma caixa de diálogo que foi aberta na página.
messageChild(message: string, messageOptions?: DialogMessageOptions): void;
Parâmetros
- message
-
string
Aceita uma mensagem da página host para entregar à caixa de diálogo. Qualquer coisa que possa ser serializada em uma cadeia de caracteres, incluindo JSON e XML, pode ser enviada.
- messageOptions
- Office.DialogMessageOptions
Opcional. Fornece opções de como enviar a mensagem.
Retornos
void
Comentários
Aplicativos: Excel, Outlook (Requisito mínimo definido: Caixa de correio 1.9), PowerPoint, Word
Conjuntos de requisitos:
Se o
messageOptionsparâmetro for usado, DialogOrigin 1.1 também será necessário.
Embora o Outlook clássico no Mac não seja compatível com a Caixa de Correio 1.9, ele é compatível com a DialogApi 1.2.
Exemplos
// The following example shows how to send information about the current active worksheet to the dialog.
await Excel.run(async (context) => {
const worksheet = context.workbook.worksheets.getActiveWorksheet();
worksheet.load();
await context.sync();
worksheetPropertiesChanged(worksheet);
});
...
function worksheetPropertiesChanged(currentWorksheet) {
const messageToDialog = JSON.stringify(currentWorksheet);
dialog.messageChild(messageToDialog);
}
sendMessage(name)
SOMENTE PARA USO INTERNO. NÃO CHAME SEU CÓDIGO.
sendMessage(name: string): void;
Parâmetros
- name
-
string
Retornos
void