Office.Actions interface

管理操作和键盘快捷方式。

方法

areShortcutsInUse(shortcuts)

根据另一个加载项或 Office 应用程序的定义,检查用户当前是否正在使用一组快捷键组合。 有关详细信息,请参阅 向 Office 外接程序添加自定义键盘快捷方式。

associate(actionId, actionFunction)

将操作的 ID 或名称与函数相关联。

getShortcuts()

获取加载项的现有快捷方式。 该集始终包括 (1) 加载项清单中为键盘快捷方式定义的快捷方式, (2) 当前用户的自定义快捷方式(如果存在)。 如果快捷方式与另一个外接程序的快捷方式或 Office 应用程序冲突,则快捷方式可以是 null 。 具体而言,当系统提示用户选择要使用的快捷方式时,用户未选择当前加载项的操作时,将 null 会出现此情况。 有关快捷方式冲突的详细信息,请参阅 避免其他加载项使用的键组合。

replaceShortcuts(shortcuts)

将现有外接程序快捷方式替换为用户的自定义快捷方式。

方法详细信息

areShortcutsInUse(shortcuts)

根据另一个加载项或 Office 应用程序的定义,检查用户当前是否正在使用一组快捷键组合。 有关详细信息,请参阅 向 Office 外接程序添加自定义键盘快捷方式。

areShortcutsInUse(shortcuts: string[]): Promise<Array<{shortcut: string, inUse: boolean}>>;

参数

shortcuts

string[]

快捷方式组合的数组。 例如, ["Ctrl+1", "Ctrl+2"]

返回

Promise<Array<{shortcut: string, inUse: boolean}>>

解析为对象数组的 promise。 每个对象由快捷键组合和布尔值组成。 如果快捷方式组合与另一个外接程序的快捷方式或 Office 应用程序的快捷方式冲突,则值为 true ;否则为 false。 例如, [{shortcut:"Ctrl+1", inUse:true},{shortcut:"Ctrl+2", inUse:false}]

注解

要求集

示例

// Checks if a specific keyboard shortcut is in use.
const shortcuts = ["Ctrl+Shift+1", "Ctrl+Shift+2"];
Office.actions.areShortcutsInUse(shortcuts)
    .then((shortcutsInUse) => {
        const availableShortcuts = shortcutsInUse.filter((shortcut) => { return !shortcut.inUse; });
        console.log(`Available keyboard shortcuts: ${availableShortcuts}`);
        const usedShortcuts = shortcutsInUse.filter((shortcut) => { return shortcut.inUse; });
        console.log(`Shortcuts in use: ${usedShortcuts}`);
});

associate(actionId, actionFunction)

将操作的 ID 或名称与函数相关联。

associate(actionId: string, actionFunction: (arg?: any) => void): void;

参数

actionId

string

清单中定义的操作的 ID。

actionFunction

(arg?: any) => void

调用操作时运行的函数。

返回

void

示例

// Maps the action ID to the showTaskPane function.
Office.actions.associate("ShowTaskpane", showTaskPane);

// Displays the add-in's task pane.
function showTaskPane() {
    return Office.addin.showAsTaskpane()
        .then(() => { console.log("Task pane is visible."); })
        .catch((error) => {
            console.log(error.code);
        });
}

getShortcuts()

获取加载项的现有快捷方式。 该集始终包括 (1) 加载项清单中为键盘快捷方式定义的快捷方式, (2) 当前用户的自定义快捷方式(如果存在)。 如果快捷方式与另一个外接程序的快捷方式或 Office 应用程序冲突,则快捷方式可以是 null 。 具体而言,当系统提示用户选择要使用的快捷方式时,用户未选择当前加载项的操作时,将 null 会出现此情况。 有关快捷方式冲突的详细信息,请参阅 避免其他加载项使用的键组合。

getShortcuts(): Promise<{[actionId: string]: string|null}>;

返回

Promise<{[actionId: string]: string|null}>

一个承诺,该承诺解析为快捷方式的对象,其中键是操作的 ID,值是快捷方式组合。 例如, {"SetItalic": "Ctrl+1", "SetBold": "Ctrl+2", "SetUnderline": null}

注解

要求集

示例

// Gets the list of keyboard shortcuts for an add-in.
Office.actions.getShortcuts()
    .then((shortcuts) => {
        for (const action in shortcuts) {
            let shortcut = shortcuts[action];
            console.log(`${action}: ${shortcut}`);
        }
});

replaceShortcuts(shortcuts)

将现有外接程序快捷方式替换为用户的自定义快捷方式。

replaceShortcuts(shortcuts: {[actionId: string]: string}): Promise<void>;

参数

shortcuts

{[actionId: string]: string}

自定义快捷方式的对象,其中键是操作的 ID,值是快捷方式组合。 例如, {"SetItalic": "Ctrl+1", "SetBold": "Ctrl+2"}。 若要了解如何指定有效的操作 ID 和组合键,请参阅 向 Office 外接程序添加自定义键盘快捷方式。 (请注意,组合键可以是 null,在这种情况下,操作将保留 JSON 文件中指定的组合键。)

返回

Promise<void>

一个承诺,用于在中 shortcuts 注册每个自定义快捷方式分配时解决。 即使与现有快捷方式发生冲突,也会注册自定义快捷方式。 否则,承诺将被拒绝,并显示错误代码和错误消息。 如果 中的任何 shortcuts 操作 ID 不存在,或者快捷方式组合无效,则返回“InvalidOperation”错误代码。

注解

要求集

示例

// Replaces the keyboard shortcuts of an add-in.
const customShortcuts = {
    ShowTaskpane:"Ctrl+Shift+1",
    HideTaskpane:"Ctrl+Shift+2"
};
Office.actions.replaceShortcuts(customShortcuts)
    .then(() => { console.log("Keyboard shortcuts successfully registered."); })
    .catch((error) => {
        if (error.code == "InvalidOperation") {
            console.log("ActionId does not exist or shortcut combination is invalid.");
        }
});