如何在 Outlook COM/VSTO 和 Office JS 加载项之间共享用户漫游设置
How to share user roaming settings between Outlook COM/VSTO and Office JS Add-in
是否可以在 COM/VSTO Outlook 和 Office JS 加载项之间共享用户的漫游设置和首选项?
范围
以下文章介绍了开发人员在 COM/VSTO Outlook 加载项和 Office JS 加载项之间架起桥梁以共享用户的漫游设置和首选项的方法。
简介
有很多公司通过 COM/VSTO Outlook 加载项为他们的客户提供覆盖面体验,并且 Outlook 2000 到最新版本的支持对他们来说是正常的。随着 Microsoft Office Store 和 Office JS 加载项背后的技术的成熟,越来越多的公司希望使用 Office JS API 来实施他们现有的解决方案。能够编写一次并轻松分发适用于 Office 工作环境的应用程序是非常有吸引力的一点。但是那些仍然使用可靠的旧 Office 2010 甚至更早版本的客户呢?您可能会说:“让他们使用我们的旧 COM 插件,不要回头看”。好吧,在该客户开始使用 Outlook for Web 并意识到您也为该环境创建了加载项之前,这可能是有效的观点。伟大的!开始使用它……但等一下,当使用 Outlook 桌面解决方案时,我在工作场所设置的设置和首选项在哪里?如果我想更改我的偏好怎么办?现在我必须这样做两次?开发人员会说:“转向我们的新解决方案,忘掉旧的 COM”。但是用户可能有一个原因,为什么他们在工作中使用带有 COM 加载项的旧 Outlook 版本,而远程使用带有新 Office JS 加载项的 OWA(在旅途中、在家工作等)。 reader 现在可能明白我的意思了。作为开发人员,您可能希望通过在全新闪亮的 Office JS 加载项与旧的但可靠且功能齐全的 COM/VSTO 解决方案之间共享首选项来简化这些客户的生活。那么,让我们看看如何做到这一点。
Office JS 加载项漫游设置
从需求集 1.0 Office JS API RoamingSettings 对象引入了四种方法来操作用户设置。您可以设置、获取和删除用户 setting/property 类型的 {String|Number|Boolean|Object|Array} 的任何自定义值。此对象保留每个用户邮箱的这些设置,并且您的 Office JS 加载项可以从任何位置、设备等使用。真正的漫游可以保留用户的首选项和设置,不是吗?请注意:您不应使用此对象来保存敏感信息,例如用户凭据或安全令牌。以下示例演示了该对象的用法:
// Get the current value of the 'myKey' setting
var value = Office.context.roamingSettings.get('myKey');
// Update the value of the 'myKey' setting
Office.context.roamingSettings.set('myKey', 'Hello World!');
// Persist the change
Office.context.roamingSettings.saveAsync();
COM/VSTO 桌面 Outlook 插件
让我们 return 找到我们的 COM/VSTO 解决方案。有一个预请求:要处理存储在用户邮箱中的设置,开发人员需要知道 Office JS 插件 ID,因为 RoamingSettings 是按插件和用户存储的。好吧,您确实知道,因为这是 your/your 公司加载项。我们要查找的设置存储在消息属性中,存储在Associated contentstable中可以使用 IMAPIFolder 界面访问收件箱文件夹。哇,这是整个post的关键句,需要详细解释。
首先,您需要枚举关联内容 table 中的所有消息,并找到带有 class “IPM.Configuration.ClientExtension.0000000000000000000000000000000” 的消息,其中零必须是您的 Office JS 加载项的 ID。
选择消息时,您需要获取“PR_ROAMING_DICTIONARY”属性。
属性 将包含我们在上面的示例中使用 Office JS 加载项时存储为漫游设置的序列化数据:
<?xml version="1.0" encoding="utf-8"?>
<UserConfiguration>
<Info version="Exchange.12" />
<Data>
<e k="18-ExtensionSettings" v="18-{"myKey":"\"Hello World!\""}" />
</Data>
</UserConfiguration>
您的 COM/VSTO 加载项将能够通过简单的解析读取和修改这些设置。您可能还想公开您的 COM 加载项用户设置。通常这些设置开发人员保存在 HKCU Windows 注册表中,以漫游世界每个用户邮箱。这样做的好处不仅在于 Office JS 加载项之间的功能,还在于每个用户邮箱的加载项设置的单独设置。当从桌面 Outlook 创建的这些设置使用不同的信息版本时,例如:
<Info version="Outlook.16"/>
结论
作为该主题的最后说明,我想说明来自同一提供商的应用程序共享设置的简单示例,其中 COM 和 Office JS 加载项共享用户设置。
参考资料
是否可以在 COM/VSTO Outlook 和 Office JS 加载项之间共享用户的漫游设置和首选项?
范围
以下文章介绍了开发人员在 COM/VSTO Outlook 加载项和 Office JS 加载项之间架起桥梁以共享用户的漫游设置和首选项的方法。
简介
有很多公司通过 COM/VSTO Outlook 加载项为他们的客户提供覆盖面体验,并且 Outlook 2000 到最新版本的支持对他们来说是正常的。随着 Microsoft Office Store 和 Office JS 加载项背后的技术的成熟,越来越多的公司希望使用 Office JS API 来实施他们现有的解决方案。能够编写一次并轻松分发适用于 Office 工作环境的应用程序是非常有吸引力的一点。但是那些仍然使用可靠的旧 Office 2010 甚至更早版本的客户呢?您可能会说:“让他们使用我们的旧 COM 插件,不要回头看”。好吧,在该客户开始使用 Outlook for Web 并意识到您也为该环境创建了加载项之前,这可能是有效的观点。伟大的!开始使用它……但等一下,当使用 Outlook 桌面解决方案时,我在工作场所设置的设置和首选项在哪里?如果我想更改我的偏好怎么办?现在我必须这样做两次?开发人员会说:“转向我们的新解决方案,忘掉旧的 COM”。但是用户可能有一个原因,为什么他们在工作中使用带有 COM 加载项的旧 Outlook 版本,而远程使用带有新 Office JS 加载项的 OWA(在旅途中、在家工作等)。 reader 现在可能明白我的意思了。作为开发人员,您可能希望通过在全新闪亮的 Office JS 加载项与旧的但可靠且功能齐全的 COM/VSTO 解决方案之间共享首选项来简化这些客户的生活。那么,让我们看看如何做到这一点。
Office JS 加载项漫游设置
从需求集 1.0 Office JS API RoamingSettings 对象引入了四种方法来操作用户设置。您可以设置、获取和删除用户 setting/property 类型的 {String|Number|Boolean|Object|Array} 的任何自定义值。此对象保留每个用户邮箱的这些设置,并且您的 Office JS 加载项可以从任何位置、设备等使用。真正的漫游可以保留用户的首选项和设置,不是吗?请注意:您不应使用此对象来保存敏感信息,例如用户凭据或安全令牌。以下示例演示了该对象的用法:
// Get the current value of the 'myKey' setting
var value = Office.context.roamingSettings.get('myKey');
// Update the value of the 'myKey' setting
Office.context.roamingSettings.set('myKey', 'Hello World!');
// Persist the change
Office.context.roamingSettings.saveAsync();
COM/VSTO 桌面 Outlook 插件
让我们 return 找到我们的 COM/VSTO 解决方案。有一个预请求:要处理存储在用户邮箱中的设置,开发人员需要知道 Office JS 插件 ID,因为 RoamingSettings 是按插件和用户存储的。好吧,您确实知道,因为这是 your/your 公司加载项。我们要查找的设置存储在消息属性中,存储在Associated contentstable中可以使用 IMAPIFolder 界面访问收件箱文件夹。哇,这是整个post的关键句,需要详细解释。
首先,您需要枚举关联内容 table 中的所有消息,并找到带有 class “IPM.Configuration.ClientExtension.0000000000000000000000000000000” 的消息,其中零必须是您的 Office JS 加载项的 ID。
选择消息时,您需要获取“PR_ROAMING_DICTIONARY”属性。
属性 将包含我们在上面的示例中使用 Office JS 加载项时存储为漫游设置的序列化数据:
<?xml version="1.0" encoding="utf-8"?>
<UserConfiguration>
<Info version="Exchange.12" />
<Data>
<e k="18-ExtensionSettings" v="18-{"myKey":"\"Hello World!\""}" />
</Data>
</UserConfiguration>
您的 COM/VSTO 加载项将能够通过简单的解析读取和修改这些设置。您可能还想公开您的 COM 加载项用户设置。通常这些设置开发人员保存在 HKCU Windows 注册表中,以漫游世界每个用户邮箱。这样做的好处不仅在于 Office JS 加载项之间的功能,还在于每个用户邮箱的加载项设置的单独设置。当从桌面 Outlook 创建的这些设置使用不同的信息版本时,例如:
<Info version="Outlook.16"/>
结论
作为该主题的最后说明,我想说明来自同一提供商的应用程序共享设置的简单示例,其中 COM 和 Office JS 加载项共享用户设置。