检查运行时的 API 可用性
如果外接程序对其某些功能使用特定的扩展性功能,但具有不需要扩展性功能的其他有用功能,则应设计外接程序,使其可安装在不支持扩展功能的平台和 Office 版本组合上。 它可以在这些组合上提供有价值的(尽管已减少)经验。
如果这两种体验的差异完全由调用的 Office JavaScript 库 API(而不是清单中配置的任何功能)的差异组成,则在运行时进行测试以发现用户的 Office 客户端是否支持 API 要求集。 还可以 在运行时测试是否支持不在集中的 API。
注意
若要提供需要清单配置的功能的备用体验,请遵循使用 统一清单指定 Office 主机和 API 要求 中的指导,或使用 仅外接程序清单指定 Office 应用程序和 API 要求。
检查要求集支持
isSetSupported 方法用于检查要求集支持。 将要求集的名称和最低版本作为参数传递。 如果支持要求集, isSetSupported
则 true
返回 。 以下代码是一个示例。
if (Office.context.requirements.isSetSupported("WordApi", "1.2")) {
// Code that uses API members from the WordApi 1.2 requirement set.
} else {
// Provide diminished experience here.
// For example, run alternate code when the user's Word is
// volume-licensed perpetual Word 2016 (which doesn't support WordApi 1.2).
}
关于此代码,请注意以下几点:
- 第一个参数是必需的。 它是一个字符串,表示要求集的名称。 有关可用要求集的详细信息,请参阅 Office 加载项要求集。
- 第二个参数是可选的。 它是一个字符串,指定 Office 应用程序必须支持的最低要求集版本,以便语句中的
if
代码运行 (例如“1.9”) 。 如果未使用,则假定版本“1.1”。
警告
调用 isSetSupported
方法时,如果指定) ,则第二个参数的值 (应为字符串,而不是数字。 JavaScript 分析程序无法区分数字值(如 1.1 和 1.10),而对于字符串值(如“1.1”和“1.10”),它可以区分。
下表显示了特定于应用程序的 API 模型的要求集名称。
Office 应用程序 | RequirementSetName |
---|---|
Excel | ExcelApi |
OneNote | OneNoteApi |
Outlook | Mailbox |
PowerPoint | PowerPointApi |
Word | WordApi |
下面是将 方法与公共 API 模型要求集之一配合使用的示例。
if (Office.context.requirements.isSetSupported('CustomXmlParts')) {
// Run code that uses API members from the CustomXmlParts requirement set.
} else {
// Run alternate code when the user's Office application doesn't support the CustomXmlParts requirement set.
}
注意
CDN isSetSupported
上的最新 Office.js 文件中提供了这些应用程序的 方法和要求集。 如果不使用 CDN 中的 Office.js,则如果你使用的是未定义的旧版本的库 isSetSupported
,则外接程序可能会生成异常。 有关详细信息,请参阅 使用最新的 Office JavaScript API 库。
检查无设置 API 支持
当外接程序依赖于不属于要求集(称为无设置 API)的方法时,请使用运行时检查来确定 Office 应用程序是否支持该方法,如以下代码示例所示。 有关不属于要求集的方法的完整列表,请参阅 Office 加载项要求集。
注意
建议限制在加载项代码中使用此类型运行时检查。
下面的代码示例检查 Office 应用程序是否支持 document.setSelectedDataAsync
。
if (Office.context.document.setSelectedDataAsync) {
// Run code that uses `document.setSelectedDataAsync`.
}