设置正文值在MAC Outlook 2016上不起作用

问题描述 投票:0回答:1

我正在使用1.3要求集来设置/获取约会/会议的正文值:Office.context.mailbox.item.body.getAsync(...)Office.context.mailbox.item.body.setAsync(...)

对于除Outlook 2016 for MAC之外的所有帐户类型(Exchange内部部署和Outlook / Office365帐户),它在字面上工作得很好,它无法应用正文的html /文本值。

检查需求集(https://dev.office.com/reference/add-ins/outlook/tutorial-api-requirement-sets)MAC Outlook被列为支持所有需求集版本(1.1到1.5),因此它还应支持body属性的getAsync和setAsync方法。

知道为什么它不起作用吗?

更新:

设定值:

  function applyBody() {
    const $dBod = $.Deferred();
    try {
      Office.context.mailbox.item.body.setAsync(_appointmentInfo.body.value, { coercionType: _appointmentInfo.body.type }, function (asyncResult) {
        if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
          $dBod.resolve();
        }
        else {
          $dBod.reject(translate.getTranslation('ERROR_SETTING_BODY'));
        }
      });
    }
    catch (e) {
      $dBod.reject(e);
    }
    return $dBod.promise();
  }

为了获得价值:

  function getBody() {
    const $dBod = $.Deferred();
    getBodyType()
      .done(function (bodyType) {
        try {
          Office.context.mailbox.item.body.getAsync(bodyType, function (asyncResult) {
            if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
              $dBod.resolve({ value: asyncResult.value, type: bodyType });
            }
            else {
              $dBod.reject(translate.getTranslation('ERROR_GETTING_BODY_VALUE'));
            }
          });
        }
        catch (e) {
          $dBod.reject(e);
        }
      })
      .fail($dBod.reject);

    return $dBod.promise();
  }

获取体型:

  function getBodyType() {
    const $dBod = $.Deferred();
    try {
      Office.context.mailbox.item.body.getTypeAsync(function (asyncResult) {
        if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
          $dBod.resolve(asyncResult.value);
        }
        else {
          $dBod.reject(translate.getTranslation('ERROR_GETTING_BODY_TYPE'));
        }
      });
    }
    catch (e) {
      $dBod.reject(e);
    }
    return $dBod.promise();
  }

UPDATE2:

方法我用于连接初始体值与我的html:

const filterNullsAndUndefined = function (array, char) {
    return array.filter(function (val) { return val; }).join(char);
  };

我称之为filterNullsAndUndefined([intialBodyValue, myHtml],'');

在我的情况下,initialBodyValue是我在将myHtml附加到它之前使用body.getAsync(...)得到的值(为了保留用户在myHtml模板被追加之前插入的任何文本)。如果我直接在body上设置myHtml(覆盖)就行了。

更新3:

当我们追加“圣诞节”这个词时,我们得到的结果如下:

appointment body as text

outlook-web-addins
1个回答
0
投票

我们能够重现这个问题。在<b>Text</b>在Outlook 2016桌面上工作后添加</html>,但在Mac上不能。我们很快就会解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.