Office.Dialog interface

Objeto que se devuelve cuando UI.displayDialogAsync se llama a . Expone métodos para registrar controladores de eventos y cerrar el cuadro de diálogo.

Comentarios

Conjunto de requisitos: DialogAPI

Métodos

addEventHandler(eventType, handler)

Registra un controlador de eventos. Los dos eventos compatibles son:

  • DialogMessageReceived. Se desencadena cuando el cuadro de diálogo envía un mensaje a su elemento principal.

  • DialogEventReceived. Se desencadena cuando el cuadro de diálogo se ha cerrado o descargado.

close()

Llamado desde una página principal para cerrar el cuadro de diálogo correspondiente.

Este método es asincrónico. No toma un parámetro de devolución de llamada y no devuelve un objeto Promise, por lo que no se puede esperar con la await palabra clave o la then función . Consulte este procedimiento recomendado para obtener más información: Abrir otro cuadro de diálogo inmediatamente después de cerrar uno

messageChild(message, messageOptions)

Entrega un mensaje de la página host, como un panel de tareas o un archivo de función sin interfaz de usuario, a un cuadro de diálogo que se abrió desde la página.

sendMessage(name)

SOLO PARA USO INTERNO. NO LLAME A EN EL CÓDIGO.

Detalles del método

addEventHandler(eventType, handler)

Registra un controlador de eventos. Los dos eventos compatibles son:

  • DialogMessageReceived. Se desencadena cuando el cuadro de diálogo envía un mensaje a su elemento principal.

  • DialogEventReceived. Se desencadena cuando el cuadro de diálogo se ha cerrado o descargado.

addEventHandler(eventType: Office.EventType, handler: (args: {message: string, origin: string | undefined} | {error: number}) => void): void;

Parámetros

eventType
Office.EventType

Debe ser DialogMessageReceived o DialogEventReceived.

handler

(args: {message: string, origin: string | undefined} | {error: number}) => void

Función que acepta un objeto con una message propiedad y origin , si eventType es DialogMessageReceived, o bien un objeto con una error propiedad , si eventType es DialogEventReceived. Tenga en cuenta que la origin propiedad está undefined en clientes que no admiten DialogOrigin 1.1.

Devoluciones

void

Ejemplos

// 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()

Llamado desde una página principal para cerrar el cuadro de diálogo correspondiente.

Este método es asincrónico. No toma un parámetro de devolución de llamada y no devuelve un objeto Promise, por lo que no se puede esperar con la await palabra clave o la then función . Consulte este procedimiento recomendado para obtener más información: Abrir otro cuadro de diálogo inmediatamente después de cerrar uno

close(): void;

Devoluciones

void

Ejemplos

// 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 un mensaje de la página host, como un panel de tareas o un archivo de función sin interfaz de usuario, a un cuadro de diálogo que se abrió desde la página.

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

Parámetros

message

string

Acepta un mensaje de la página host para entregarlo al cuadro de diálogo. Todo lo que se puede serializar en una cadena, incluidos JSON y XML, se puede enviar.

messageOptions
Office.DialogMessageOptions

Opcional. Proporciona opciones para enviar el mensaje.

Devoluciones

void

Comentarios

Aplicaciones: Excel, Outlook (conjunto de requisitos mínimos: Buzón 1.9), PowerPoint, Word

Conjuntos de requisitos:

Aunque outlook clásico en Mac no admite el buzón 1.9, sí admite DialogApi 1.2.

Ejemplos

// 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)

SOLO PARA USO INTERNO. NO LLAME A EN EL CÓDIGO.

sendMessage(name: string): void;

Parámetros

name

string

Devoluciones

void