我正在创建我的第一个 Outlook Web 插件应用程序。当我在 Outlook 中查看电子邮件时调用 Office.context.mailbox.item.body.getTypeAsync 时,收到错误消息“未捕获” 类型错误:Office.context.mailbox.item.body.getTypeAsync 不是函数”:
(function () {
Office.onReady(function () {
Office.context.mailbox.item.body.getTypeAsync((typeResult) => {
if (typeResult.status === Office.AsyncResultStatus.Succeeded) {
const coercionType = typeResult.value;
Office.context.mailbox.item.body.getAsync(coercionType, (getResult) => {
if (getResult.status === Office.AsyncResultStatus.Succeeded) {
// Do something with getResult.value - message body content.
}
else {
console.log(getResult.error.message);
}
});
}
else {
console.log(typeResult.error.message);
}
});
});
})();
如果我分离出代码并使用硬编码强制类型(Office.CoercionType.Html 或 Office.CoercionType.Text)调用 Office.context.mailbox.item.body.getAsync,getAsync 将按预期工作。但 getTypeAsync 在 Office.context.mailbox.item.body 上不可用作为函数,在 Outlook Web 中读取邮件并使用开发工具进行检查时,getAsync 是 Office.context.mailbox.item.body 上的唯一函数。这看起来很不寻常,因为 Office.js 文档中指出,Office.context.mailbox.item.body 上应该提供其他功能。
可能导致问题的原因是什么,如何修复它以便可以正确调用 getTypeAsync?我正在使用 Microsoft 的实时 Office.js 框架,因此它应该包含所有最新功能。是否可能是清单文件的问题,或者是从 Microsoft 获取 Office.js 框架的问题?
这是我的 MessageRead.html 基本文件中标头的一部分,引用了我的 JavaScript 文件,包括 Office.js 框架:
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
<script src="MessageRead.js" type="module"></script>
错误说明了一切,
Office.context.mailbox.item.body.getTypeAsync
功能不可用。当参考 getTypeAsync(callback)
上的文档时,它仅在“备注”部分将 Outlook 适用模式列为“撰写”。该功能在读取模式下不存在。