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

时间:2017-12-20 09:11:43

标签: outlook-web-addins

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

除了适用于MAC的Outlook 2016之外,它在所有帐户类型(Exchange内部部署和Outlook / Office365帐户)中无处不在,无法应用正文的html / text值。

检查需求集(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模板之前插入的任何文本)。 如果我直接在身体上设置myHtml(覆盖)就可以了。

更新3:

在我们附加“Christmass”一词后得到的结果:

appointment body as text

1 个答案:

答案 0 :(得分:0)

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