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


Просмотр или изменение темы при создании встречи или сообщения в Outlook

API JavaScript для Office предоставляет асинхронные методы (subject.getAsync и subject.setAsync) для получения и задания темы встречи или сообщения, которые создает пользователь. Эти асинхронные методы доступны только для создания надстроек. Чтобы использовать эти методы, убедитесь, что xml-манифест надстройки настроен соответствующим образом для Outlook, чтобы активировать надстройку в формах создания.

Свойство subject доступно для чтения в формах создания и чтения встреч и сообщений. В форме чтения доступ к свойству непосредственно из родительского объекта, как в:

Office.context.mailbox.item.subject;

Но в форме создания, так как пользователь и надстройка могут вставлять или изменять тему одновременно, необходимо использовать getAsync метод для асинхронного получения темы.

Office.context.mailbox.item.subject.getAsync(callback);

Свойство subject доступно для доступа к записи только в формах создания, но не в формах чтения.

Совет

Чтобы временно задать содержимое, отображаемое в теме сообщения в режиме чтения, используйте Office.context.mailbox.item.display.subject (предварительная версия).

Как и большинство асинхронных методов в API JavaScript для Office, getAsync и setAsync принимают необязательные входные параметры. Дополнительные сведения о том, как указать эти необязательные входные параметры, см. в разделе Передача необязательных параметров в асинхронные методы статьи Асинхронное программирование в надстройках Office.

Получение темы

В этом разделе показан пример кода, получающий и отображающий тему создаваемой встречи или сообщения.

Чтобы использовать item.subject.getAsync, предоставьте функцию обратного вызова, которая проверяет состояние и результат асинхронного вызова. Вы можете указать любые необходимые аргументы для функции обратного вызова с помощью необязательного asyncContext параметра. Чтобы получить состояние, результаты и любую ошибку из функции обратного вызова, используйте asyncResult выходной параметр обратного вызова. Если асинхронный вызов выполнен успешно, используйте свойство AsyncResult.value , чтобы получить тему в виде строки обычного текста.

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        getSubject();
    }
});

// Gets the subject of the item that the user is composing.
function getSubject() {
    item.subject.getAsync((asyncResult) => {
        if (asyncResult.status === Office.AsyncResultStatus.Failed) {
            write(asyncResult.error.message);
            return;
        }

        // Display the subject on the page.
        write(`The subject is: ${asyncResult.value}`);
    });
}


// Writes to a div with id="message" on the page.
function write(message) {
    document.getElementById("message").innerText += message; 
}

Установка темы

В этом разделе показан пример кода, задающий тему создаваемой встречи или сообщения.

Чтобы использовать item.subject.setAsync, укажите строку не более 255 символов в параметре data . При необходимости можно указать функцию обратного вызова и любые аргументы для функции обратного вызова в параметре asyncContext . Проверьте состояние обратного вызова, результат и любое сообщение об ошибке в выходном asyncResult параметре обратного вызова. Если асинхронный вызов выполнен успешно, setAsync вставляет указанную строку субъекта в виде обычного текста, перезаписав все существующие темы для этого элемента.

let item;

// Confirms that the Office.js library is loaded.
Office.onReady((info) => {
    if (info.host === Office.HostType.Outlook) {
        item = Office.context.mailbox.item;
        setSubject();
    }
});

// Sets the subject of the item that the user is composing.
function setSubject() {
    // Customize the subject with today's date.
    const today = new Date();
    const subject = `Summary for ${today.toLocaleDateString()}`;

    item.subject.setAsync(
        subject,
        { asyncContext: { optionalVariable1: 1, optionalVariable2: 2 } },
        (asyncResult) => {
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                write(asyncResult.error.message);
                return;
            }

            /*
              The subject was successfully set.
              Run additional operations appropriate to your scenario and
              use the optionalVariable1 and optionalVariable2 values as needed.
            */
        });
}

// Writes to a div with id="message" on the page.
function write(message) {
    document.getElementById("message").innerText += message; 
}

См. также