我正在开发具有固定支持的简单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>
答案 0 :(得分:1)
Office.initialize回调仅在加载项打开时运行一次。固定加载项之后,不应在每次在消息之间切换时都调用回调。但是,您可以通过addHandlerAsync注册ItemChanged事件,以在消息更改时获取更新。请找到更多详细信息here。
答案 1 :(得分:1)
这是我们最近修复的错误。在文件夹之间切换不应再导致加载项重新初始化。如果您选择了Insider Fast构建,则应该已经有此修复程序。如果没有,此修复程序将在一段时间后推出。