outlook - Mac Outlook 客户端 - Office365 加载项 - 固定 - Office.initialize 未回调
问题描述
我正在开发具有固定支持的简单 Outlook 插件。该插件在 Windows Outlook、Chrome 和 IE 中运行良好。但是当我们在 mac Outlook 客户端中尝试它时,行为是完全不同的。
创建具有固定支持的加载项。
打开加载项并将其固定。
更改电子邮件
从收件箱切换到已发送项目,然后立即单击另一封电子邮件。
现在,如果我们仔细观察 Office.initialize 回调将不会回调。
请使用以下代码进行调试。
var isInitialized = false;
Office.initialize = function(reason) {
console.log('Office initialize callback is getting fired from outlook');
document.getElementById('status').innerHTML = 'Office is loaded 1';
isInitialized = true;
};
var attempt = 0;
var checkOfficeIsInitialized = function() {
console.log('checking office', attempt);
setTimeout(function() {
console.log('is window intialized', isInitialized);
if (!isInitialized && attempt < 45) {
attempt++;
checkOfficeIsInitialized();
} else {
if (!isInitialized) {
document.getElementById('status').innerHTML = 'Failed to initialize outlook';
} else {
document.getElementById('status').innerHTML = 'Office is loaded 2';
}
}
}, 1000);
}
checkOfficeIsInitialized();
这是html
<!doctype html>
<html>
<head>
<title>Tetsing</title>
</head>
<body>
<h3 id="status">Loading....</h3>
<script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script src="js/public-login-v2.js" type="text/javascript"></script>
</body>
</html>
解决方案
Office.initialize 回调仅在加载项打开时运行一次。固定加载项后,不应在每次消息之间切换时调用回调。但是,您可以通过 addHandlerAsync 注册 ItemChanged 事件以在消息更改时获取更新。请在此处找到更多详细信息。
推荐阅读
- python-3.x - 多个版本的 Anaconda & Python 安装
- java - Firestore 按文档 ID 或文档字段搜索和排序,哪个更好?
- python - matplotlib 在 pyqt5 中如何使用 qt 设计器
- php - 计算范围之间的值
- mysql - MySQL:尝试根据 CASE 选择表,收到错误代码:1241 操作数应包含 1 列
- r - 使用 MatchIt 的粗化精确匹配返回错误
- go - 如何控制 gin 1.4.0+ 中缺少 URL 参数的行为?
- html - 如何在自定义 Django 模板标签中动态呈现 Vue.js 指令
- vue.js - vue js v-model 可以添加多个修饰符吗?
- python - 为什么决策树在精度和召回值上给出 100% 的准确率和整数?