我正在编写一个 Outlook OnSend 插件(新式 Web 插件,而不是旧式 COM),并希望在用户离线时使用 Service Worker 来提供功能。我已经编写了一个插件,当我在 Edge 中点击插件的 html 页面时,我可以看到正在安装服务工作者并成功缓存插件文件。
但是,当我在 Outlook Desktop 中运行插件时,似乎没有安装 Service Worker。我正在通过运行 Fiddler 来测试这个,我可以看到每次运行时都在请求添加文件,而不是来自服务工作者应该创建的缓存。
我的插件 HTML 引用了一个 main.js(见下文),它试图注册服务工作者。为了提供一些跟踪/故障排除能力,我对服务进行了 ajax 调用。这告诉我的是:
Outlook 插件是否支持 Service Worker?我正在运行 Outlook 版本 2004(12730.20270 点击运行)和 Windows 1909,所以我希望 Outlook 使用 Edge 而不是 IE 11,因此有服务工作者支持。
作为参考,我的 main.js 如下所示:
if ('serviceWorker' in navigator) {
sendMessage('1');
try {
navigator.serviceWorker.register('sw.js').then(function(registration) {
sendMessage('2'); // Never sent
}).catch(function(error) {
sendMessage('3'); // Never sent
});
}
catch(err) {
sendMessage(err.message);
}
}
else {
sendMessage('4');
}
function sendMessage(message) {
$.ajax({
url: "../api/schedule",
type: "POST",
crossDomain: true,
//contentType: "jsonp",
contentType: 'application/json; charset=utf-8',
data: message
});
}
插件目前不支持 Service Workers,在不久的将来,任何 Service Workers 的使用都将被禁用。我们在用户语音页面上跟踪插件功能请求。请在那里添加您的请求。当我们进行规划过程时,会考虑对用户语音的功能请求
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句