Поделиться через


office-runtime package

Интерфейсы

OfficeRuntime.ApiInformation

Интерфейс, содержащий методы проверки поддержки набора требований API.

OfficeRuntime.Auth

Интерфейс, содержащий API-интерфейсы, связанные с авторизацией.

OfficeRuntime.AuthOptions

Предоставляет параметры для взаимодействия с пользователем, когда Office получает маркер доступа к надстройке из AAD версии 2.0 с getAccessToken помощью метода .

OfficeRuntime.Dialog

Объект, представляющий диалоговое окно.

OfficeRuntime.DisplayWebDialogOptions

Предоставляет параметры отображения и действия, которые может выполнять диалоговое окно.

OfficeRuntime.Storage

Асинхронное, глобальное и постоянное хранилище ключей и значений.

Функции

OfficeRuntime.displayWebDialog(url, options)

Функция, которая включает всплывающее диалоговое окно веб-сайта.

Сведения о функции

OfficeRuntime.displayWebDialog(url, options)

Функция, которая включает всплывающее диалоговое окно веб-сайта.

export function displayWebDialog(url: string, options?: DisplayWebDialogOptions): Promise<Dialog>;

Параметры

url

string

Должен быть строкой.

options
OfficeRuntime.DisplayWebDialogOptions

Необязательный параметр. Должен иметь тип DisplayWebDialogOptions.

Возвращаемое значение

Комментарии

[ Набор API: CustomFunctionsRuntime 1.1 ]

Примеры

/**
 * Opens an authentication dialog from a custom function.
 * @customfunction AUTH.LOGIN
 * @returns A promise that resolves to the authentication result.
 */
async function authLogin(): Promise<string> {
  const dialogUrl = "https://your-addin-domain.com/auth-dialog.html";

  return new Promise((resolve, reject) => {
    OfficeRuntime.displayWebDialog(dialogUrl, {
      height: "50%",
      width: "40%",

      onMessage: (message: string, dialog?: OfficeRuntime.Dialog) => {
        // Handle messages sent from the dialog via window.opener.postMessage().
        const data = JSON.parse(message);

        if (data.type === "auth-success") {
          // Process the authentication token
          dialog?.close();
          resolve(`Signed in as ${data.username}`);
        } else if (data.type === "auth-error") {
          dialog?.close();
          reject(new Error(data.errorMessage));
        }
      },

      onClose: () => {
        // Handle the user closing the dialog.
        resolve("Dialog closed");
      },

      onRuntimeError: (error: Error, dialog?: OfficeRuntime.Dialog) => {
        // Handle runtime errors from the dialog.
        dialog?.close();
        reject(error);
      },
    }).catch((error) => {
      reject(new Error(`Failed to open dialog: ${error.message}`));
    });
  });
}