Outlook error: "Add-in still working" when sending message
Outlook error: "Add-in still working" when sending message
我做了一个足够简单的 owa 插件,当用户启动它时,会打开一个对话框 window (Office.context.ui.displayDialogAsync),用户可以在其中修改消息的某些方面(影响收件人和邮件 headers)。据我所知,当用户关闭对话框并且 add-in 完成其工作时,所有异步请求几乎立即完成,但在尝试发送时仍然会触发错误。
原因似乎是当对话框打开时,owa 开始每隔一秒左右向一个不存在的地址发送垃圾邮件请求,直到几分钟后才会出现错误,请求似乎停止了各种超时。
我的开发者控制台充满了这个;
aria-web-telemetry.js:1 POST
https://browser.pipe.aria.microsoft.com/Collector/3.0/?qsp=true&content-
type=application%2Fbond-compact-binary&client-id=NO_AUTH&sdk-version=AWT-Web-
JS-1.1.1&x-apikey=db334b301e7b474db5e0f02f07c51a47-a1b5bc36-1bbe-482f-a64a-
c2d9cb606706-7439&client-time-epoch-millis=1532959882460 404 (Not Found)
到目前为止 google 没有发现任何有用的东西,我只是无法理解为什么微软会打电话给一个不存在的地址。
果然,https://appsforoffice.microsoft.com/lib/1/hosted//ariatelemetry/aria-web-telemetry.js 包含 url 硬编码。我能做什么?
编辑 1)
- 我在虚拟机上托管自己的试用 windows 服务器,并使用该服务器的交换帐户。
- 所有浏览器都会出现该错误。
- Firefox 给我
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://browser.pipe.aria.microsoft.com/Collector/3.0/?qsp=true&content-type=application%2Fbond-compact-binary&client-id=NO_AUTH&sdk-version=AWT-Web-JS-1.1.1&content-encoding=base64&x-apikey=a387cfcf60114a43a7699f9fbb49289e-9bceb9fe-1c06-460f-96c5-6a0b247358bc-7238&client-time-epoch-millis=1532965578192. (Reason: CORS request did not succeed).
- IE 并没有真正给我任何我可以挑选的东西
- 上面的例子来自chrome
- 我还没有在桌面上安装它,所以目前只有网页版。
至于代码。
我的清单定义了按钮控件的操作
<Action xsi:type="ExecuteFunction">
<FunctionName>showMessageSecurityDialog</FunctionName>
</Action>
该函数依次显示对话框
Office.context.ui.displayDialogAsync(window.location.origin + dialogPage, { height: 50, width: 75, displayInIframe: true }, dialogCallback);
在对话框中,当用户按下保存按钮时,它会运行
Office.context.ui.messageParent(true);
表示我们完成了
从这里开始
dialog = asyncResult.value;
dialog.addEventHandler(
Microsoft.Office.WebExtension.EventType.DialogMessageReceived,
messageHandler
);
dialog.addEventHandler(
Microsoft.Office.WebExtension.EventType.DialogEventReceived,
eventHandler
);
被调用,它整齐地流入消息处理程序
dialog.close();
if (arg.message == true) {
applyMessageSecurity();
}
applyMessageSecurity 依次运行大量异步请求,当这些请求的承诺得到解决时,我会通过 Office.context.mailbox.item.notificationMessages.addAsync("information", {type: "informationalMessage", persistent: false, message: "success"})
让用户知道
afaik 我们应该在这一点上完成。所有代码都已完成 运行,对话框已关闭,但后台的某些内容仍在运行,导致 owa 认为插件是 运行
请确保在对话框关闭后或您的代码完成所有工作后调用 event.completed(),以便通知 outlook 目前的 uiless 代码已完成。您可以在 this article.
中找到更多详细信息
我做了一个足够简单的 owa 插件,当用户启动它时,会打开一个对话框 window (Office.context.ui.displayDialogAsync),用户可以在其中修改消息的某些方面(影响收件人和邮件 headers)。据我所知,当用户关闭对话框并且 add-in 完成其工作时,所有异步请求几乎立即完成,但在尝试发送时仍然会触发错误。
原因似乎是当对话框打开时,owa 开始每隔一秒左右向一个不存在的地址发送垃圾邮件请求,直到几分钟后才会出现错误,请求似乎停止了各种超时。 我的开发者控制台充满了这个;
aria-web-telemetry.js:1 POST
https://browser.pipe.aria.microsoft.com/Collector/3.0/?qsp=true&content-
type=application%2Fbond-compact-binary&client-id=NO_AUTH&sdk-version=AWT-Web-
JS-1.1.1&x-apikey=db334b301e7b474db5e0f02f07c51a47-a1b5bc36-1bbe-482f-a64a-
c2d9cb606706-7439&client-time-epoch-millis=1532959882460 404 (Not Found)
到目前为止 google 没有发现任何有用的东西,我只是无法理解为什么微软会打电话给一个不存在的地址。
果然,https://appsforoffice.microsoft.com/lib/1/hosted//ariatelemetry/aria-web-telemetry.js 包含 url 硬编码。我能做什么?
编辑 1)
- 我在虚拟机上托管自己的试用 windows 服务器,并使用该服务器的交换帐户。
- 所有浏览器都会出现该错误。
- Firefox 给我
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://browser.pipe.aria.microsoft.com/Collector/3.0/?qsp=true&content-type=application%2Fbond-compact-binary&client-id=NO_AUTH&sdk-version=AWT-Web-JS-1.1.1&content-encoding=base64&x-apikey=a387cfcf60114a43a7699f9fbb49289e-9bceb9fe-1c06-460f-96c5-6a0b247358bc-7238&client-time-epoch-millis=1532965578192. (Reason: CORS request did not succeed).
- IE 并没有真正给我任何我可以挑选的东西
- 上面的例子来自chrome
- Firefox 给我
- 我还没有在桌面上安装它,所以目前只有网页版。
至于代码。 我的清单定义了按钮控件的操作
<Action xsi:type="ExecuteFunction">
<FunctionName>showMessageSecurityDialog</FunctionName>
</Action>
该函数依次显示对话框
Office.context.ui.displayDialogAsync(window.location.origin + dialogPage, { height: 50, width: 75, displayInIframe: true }, dialogCallback);
在对话框中,当用户按下保存按钮时,它会运行
Office.context.ui.messageParent(true);
表示我们完成了
从这里开始
dialog = asyncResult.value;
dialog.addEventHandler(
Microsoft.Office.WebExtension.EventType.DialogMessageReceived,
messageHandler
);
dialog.addEventHandler(
Microsoft.Office.WebExtension.EventType.DialogEventReceived,
eventHandler
);
被调用,它整齐地流入消息处理程序
dialog.close();
if (arg.message == true) {
applyMessageSecurity();
}
applyMessageSecurity 依次运行大量异步请求,当这些请求的承诺得到解决时,我会通过 Office.context.mailbox.item.notificationMessages.addAsync("information", {type: "informationalMessage", persistent: false, message: "success"})
afaik 我们应该在这一点上完成。所有代码都已完成 运行,对话框已关闭,但后台的某些内容仍在运行,导致 owa 认为插件是 运行
请确保在对话框关闭后或您的代码完成所有工作后调用 event.completed(),以便通知 outlook 目前的 uiless 代码已完成。您可以在 this article.
中找到更多详细信息