Compartilhar via


Office.Dialog interface

O objeto que é devolvido quando UI.displayDialogAsync é chamado. Expõe métodos para registar processadores de eventos e fechar a caixa de diálogo.

Comentários

Conjunto de requisitos: DialogAPI

Métodos

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.

close()

Chamado de uma página pai para fechar a caixa de diálogo correspondente.

Este método é assíncrono. Não aceita um parâmetro de chamada de retorno e não devolve um objeto Promise, pelo que não pode ser aguardado com o await palavra-chave ou a then função. Veja esta melhor prática para obter mais informações: Abrir outra caixa de diálogo imediatamente após fechar uma

messageChild(message, messageOptions)

Entrega uma mensagem a partir da página do anfitrião, como um painel de tarefas ou um ficheiro de função sem IU, para uma caixa de diálogo que foi aberta a partir da página.

sendMessage(name)

APENAS PARA UTILIZAÇÃO INTERNA. NÃO CHAME O 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

Tem de 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 eorigin, se eventType forDialogMessageReceived , ou um objeto com uma error propriedade, se eventType for DialogEventReceived. Tenha em atenção que a origin propriedade está undefined em clientes que não suportam 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.

Este método é assíncrono. Não aceita um parâmetro de chamada de retorno e não devolve um objeto Promise, pelo que não pode ser aguardado com o await palavra-chave ou a then função. Veja esta melhor prática 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 a partir da página do anfitrião, como um painel de tarefas ou um ficheiro de função sem IU, para uma caixa de diálogo que foi aberta a partir da página.

messageChild(message: string, messageOptions?: DialogMessageOptions): void;

Parâmetros

message

string

Aceita uma mensagem da página do anfitrião para entregar na caixa de diálogo. Qualquer coisa que possa ser serializada para uma cadeia, incluindo JSON e XML, pode ser enviada.

messageOptions
Office.DialogMessageOptions

Opcional. Fornece opções para como enviar a mensagem.

Retornos

void

Comentários

Aplicações: Excel, Outlook (Conjunto de requisitos mínimos: Caixa de Correio 1.9), PowerPoint Word

Conjuntos de requisitos:

Embora o Outlook para Mac clássico não suporte a Caixa de Correio 1.9, suporta 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)

APENAS PARA UTILIZAÇÃO INTERNA. NÃO CHAME O SEU CÓDIGO.

sendMessage(name: string): void;

Parâmetros

name

string

Retornos

void