检查运行时的 API 可用性

如果外接程序对其某些功能使用特定的扩展性功能,但具有不需要扩展性功能的其他有用功能,则应设计外接程序,使其可安装在不支持扩展功能的平台和 Office 版本组合上。 它可以在这些组合上提供有价值的(尽管已减少)经验。

如果这两种体验的差异完全由调用的 Office JavaScript 库 API(而不是清单中配置的任何功能)的差异组成,则在运行时进行测试以发现用户的 Office 客户端是否支持 API 要求集。 还可以 在运行时测试是否支持不在集中的 API

注意

若要提供需要清单配置的功能的备用体验,请遵循使用 统一清单指定 Office 主机和 API 要求 中的指导,或使用 仅外接程序清单指定 Office 应用程序和 API 要求

检查要求集支持

isSetSupported 方法用于检查要求集支持。 将要求集的名称和最低版本作为参数传递。 如果支持要求集, isSetSupportedtrue返回 。 以下代码是一个示例。

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`.
}

另请参阅