Sla*_*nov 3 outlook vsto ms-office outlook-addin office365
是否可以在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”。但是用户可能有一个原因,为什么他们会在工作中使用旧的Outlook版本以及COM加载项,而将OWA与新的Office JS加载项一起远程使用(在旅途中,在家中工作等)。读者现在可能已经明白了我的意思。作为开发人员,您可能希望通过在全新的和闪亮的Office JS加载项以及旧的但功能齐全的COM / VSTO解决方案之间共享偏好来简化这些客户的生活。因此,让我们了解如何做到这一点。
从需求集1.0开始,Office JS API RoamingSettings对象引入了四种使用用户设置进行操作的方法。您可以设置,获取和删除{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();
Run Code Online (Sandbox Code Playgroud)
让我们回到我们的COM / VSTO解决方案。仅存在一个预先请求:要处理存储在用户邮箱中的设置,开发人员需要知道Office JS加载项ID,因为RoamingSettings是按每个加载项和每个用户存储的。好吧,您确实会知道的,因为这是您/您的公司的加载项。我们正在寻找的设置存储在message属性中,该属性存储在“收件箱”文件夹的“ 相关内容”表中,可以使用IMAPIFolder接口进行访问。哇,这是整个帖子的重点,需要详细解释。
首先,您需要枚举关联的内容表中的所有消息,并找到具有“ IPM.Configuration.ClientExtension.00000000000000000000000000000000”类的消息,其中零必须是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>
Run Code Online (Sandbox Code Playgroud)
您的COM / VSTO加载项将能够通过简单的解析来读取和修改这些设置。您可能还希望公开您的COM加载项用户设置。通常,这些设置开发人员保留在HKCU Windows注册表中,以漫游每个用户邮箱的世界。这样做的好处不仅在于Office JS加载项之间的功能,而且还包括每个用户邮箱的加载项的单独设置集。当从Desktop Outlook创建的那些设置使用不同的信息版本时,例如:
<Info version="Outlook.16"/>
Run Code Online (Sandbox Code Playgroud)
作为该主题的最后注解,我想说明来自同一提供者的应用程序共享设置的简单示例,其中COM和Office JS加载项共享用户设置。
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |