Welcome 微信登录

首页 / 脚本样式 / JavaScript / 探讨JavaScript API for Office:邮件应用程序

探讨JavaScript API for Office:邮件应用程序2014-06-10 MSDN Angela Chu-Hatoun本文是深入探讨 JavaScript API for Office 的第四部分,重点讨 论 Outlook 和 Outlook Web 应用程序所支持的邮件应用程序的可用 API 部分。 假设您对于 Office 的应用程序已有基本了解。如果有疑问,阅读开发人员中心 文档页上的“用于 Office 的应用程序概述”(bit.ly/12nBWHG) 可以获得相关知识。本系 列第一部分,“探索新的 JavaScript API for Office”(msdn.microsoft.com/m agazine/jj891051) 高度概述了以 Office 对象为根对象的对象模型。 Office.context 中的 Mailbox 对象为对象模型中绝大多数邮件应用程序专用功 能提供了入口,我将从这里开始讨论。

本文的主题是向开发者介绍 JavaScript API for Office 在邮件应用程序中的应用。我还在以下地址提供了 一篇在线姊妹篇文章,其中对一个邮件应用程序示例进行了剖析,并提供了源代 码:msdn.microsoft.com/m agazine/dn205107。现在我要讨论 JavaScript API for Office 的各种功能 ,我们先从较基本的常用技巧开始,然后介绍比较高深的概念。

JavaScript API for Office 的基本功能

Mailbox 对象提供对 用户配置文件、用户当前选择的项目、显示项目的窗体和操控电子邮箱中项目和 文件夹的 Exchange Web Services (EWS) 子集的访问。Item 对象表示选定的邮 件或约会项。通过该对象,可以进一步访问内置属性、自定义属性和该项目的附 件。

根据项类型控制激活 可以在清单中定义规则,用以确定何时激活邮 件应用程序。用户当前选定并由 Mailbox.item 指定的项可以是一个“邮件”( 包括会议请求、响应和取消通知)对象或“约会”对象。根据具体方案,可以限 制邮件应用程序,使其只激活特定类型的项。以下 XML 示例显示的是一个 ItemIs 激活规则,用来限制邮件应用程序,使其只激活消息类项:

 

<Rule xsi:type="ItemIs" ItemType="Message" />
使用 JavaScript API for Office,可以利用 itemType 属性确 认选定项的类型:

             Office.context.mailbox.item.itemType            

项访问和属性 邮件应用程序提供的一个基本功能是访问当 前选定的项及其内置属性。

以下 JavaScript 示例显示如何访问选定的项 及其内置属性 subject:

// The initialize function is required for all apps.Office.initialize = function () {// Check for the DOM to load.$(document).ready(function () {var item = Office.context.mailbox.item;var subject = item.subject;// Continue processing the subject.});}
已知实体 无论您是否使用实体激活邮件应用程序,Exchange Server 都能识别可用的部分实体。 如果实体存在于选定项的主题或正文内,Outlook 和 Outlook Web App 会提取它们,并通过以下 JavaScript API 方法使其可用:

   getEntities 方法    getEntitiesByType(entityType) 方法    getFilteredEntitiesByName(name) 方法

所支持的实体包 括地址、联系人、电子邮件地址等。

请注意,无论应用程序清单中指定何 种默认区域设置,Outlook 和 Outlook Web App 都只能提取英文字符串。 它们 不能提取“已发送邮件”文件夹中的实体。 它们能提取消息类型的会议建议,不 能提取约会类型的建议。

获取可产生上下文激活的匹配项 可以指定依赖 于正则表达式匹配(ItemHasRegularExpressionMatch 规则)或选定项中实体匹 配(ItemHasKnownEntity 规则)的激活规则。 可以使用以下方法获取正则表达 式匹配: 这些方法在父级 Item 对象中可用,而该对象可以是消息类型或约会类 型的:

   getRegExMatches 方法    getRegExMatchesByName(name) 方法

可以使用“已知实体 ”部分列出的方法获取特定实体匹配。 请注意,无论邮件应用程序使用何种类型 的激活规则,始终可以使用这些方法获取任何实体匹配。

示例 以下是一 个名为 VideoURL 的 ItemHasRegularExpressionMatch 规则示例,如果选定的项 是一封邮件且邮件正文包含 YouTube 上某个视频的 URL,则它会激活邮件应用程 序:

<Rule xsi:type="RuleCollection" Mode="And"><Rule xsi:type="ItemIs" ItemType="Message"/><Rule xsi:type="ItemHasRegularExpressionMatch"RegExName="VideoURL"RegExValue="http://www.youtube.com/watch?v=[a-zA-Z0-9_-]{11}"PropertyName="Body"/></Rule>
以下 JavaScript 代码示例显示如何使用 Item.getRegExMatches 方法获取 前面 VideoURL 正则表达式的匹配项:

Office.initialize = function () {// Check for the DOM to load.$(document).ready(function () {// Get an array of string matches for the regular expression VideoURL,// as specified in the manifest.var matches = Office.context.mailbox.item.getRegExMatches().VideoURL;// Continue processing the matches for the regular expression.});}