【发布时间】:2017-01-26 15:02:44
【问题描述】:
有没有办法(API 或其他?)找出是否安装了插件?
我正在考虑增加 Exchange 安装以插入我自己的按钮来告诉我的用户是否安装了 Outlook 加载项?
是否有用于查找的 API?
【问题讨论】:
标签: outlook office365 office-js office365-apps outlook-web-app
有没有办法(API 或其他?)找出是否安装了插件?
我正在考虑增加 Exchange 安装以插入我自己的按钮来告诉我的用户是否安装了 Outlook 加载项?
是否有用于查找的 API?
【问题讨论】:
标签: outlook office365 office-js office365-apps outlook-web-app
Office 对象模型有一个可从 Outlook.Application 对象访问的 COMAddins 集合,您可以使用它来遍历所有已注册的加载项。任何加载的加载项都会将 COMAddin.Connect 设置为 True(您可以将其设置为 False 以卸载加载项)。
【讨论】:
在 Exchange 和 OWA(不是桌面 Outlook)中执行此操作的技巧是使用 JS 手动打开加载项窗格并尝试单击您的加载项。我意识到并不完美,但它确实满足了最初的要求,即使没有直接的 API 支持。
编辑名为 microsoft.owa.mail.compose.js 的文件,并找到一个合适的位置输入类似以下内容。
var workDocument = (this.bh.bz) ? $(this.bh.bz.document) : window.document;
var yourAddIn = $(workDocument).find('iframe[title="Your_Add-In_Name"]');
if (yourAddIn.length > 0) {
yourAddIn[0].contentWindow.postMessage({ id: 'Look_for_your_id_using_DevTools_F12_and_Find_the_id', message: 'send'}, '*');
return;
} else {
// Click Add-in button, click the add-in name in the add-ins list
var addInsButton = $(workDocument).find("button[title='Add-ins']");
if (addInsButton.length <= 0) {
return;
}
addInsButton[0].click();
}
【讨论】: