我正在使用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”一词后得到的结果:
答案 0 :(得分:0)
我们能够重现这个问题。
在Outlook 2016桌面上工作后添加<b>
Text</b>
<b>
,但不在Mac上。我们很快就会解决这个问题。