Я работал с различными прототипами для новой надстройки Outlook Web, и все они работали, как предполагалось / ожидалось, однако сегодня мой код для регистрации Office.EventType.ItemChanged
перестал работать, и я не могу отработатьпочему.
Захват ошибки возвращает общий OSF.DDA.Error "An internal error has occurred." code: 5001
, как показано ниже:
error: OSF.DDA.Error {
name: "Internal Error",
message: "An internal error has occurred.",
code: 5001 } status: "failed"
Способ, которым я пытаюсь это настроить, приведен ниже и вызывается из конструктора верхнего уровня.компонент уровня React:
begin snippet: js hide: false console: true babel: false
язык: lang-js
Office.initialize = () => {
// Handle changing selected email - This is where the error generated
Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, this.itemChanged, this.handleFailedChange);
// Handle authentication - This is working perfectly
Office.context.mailbox.getUserIdentityTokenAsync(this.callBack);
this.setState({
...this.state,
isOfficeInitialized: true,
});
};
Ошибка возникает при вызове addHandlerAsync и щелчке между сообщениями электронной почты, а затем не может вызвать событие, getUserIdentityTokenAsync()
метод вызывается и работает, так как надстройка аутентифицируется должным образом, поэтому ошибка не препятствует выполнению.
Я попытался переместить вызов Office.initialize из конструктора, но это не помогло решить проблемув дополнение к усложнению отслеживания состояния isOfficeInitalized, на которое я полагаюсь, чтобы убедиться, что все готово.
Код - ReactJS и мыв TypeScript для обеспечения кодирования.Как уже упоминалось выше, у меня все остальное работает, включая загрузку выбранного почтового элемента при первом открытии надстройки - я извлекаю из нее адреса субъекта, отправителя и Cc - так что я знаю, что файл Office.js работает и работаеткак положено.
Любая помощь будет отличной, заранее спасибо!
РЕДАКТИРОВАТЬ - Решение:
Так что после публикации и потратить еще немного временипытаясь заставить это работать, я проверил файл manifest.xml ... оказывается, что метод addHandlerAsync доступен только после API 1.5, а минимальная версия в моем файле была 1.3, установив DefaultMinVersion = "1.5", это решило это:
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.5">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>