[CEP]注册快捷键
link: https://justintaylor.tv/hotkeys-in-cep/
问题
向Adobe CEP 扩展添加快捷键有点麻烦。因为是先将快捷方式发送到主机应用程序(AE、PPRO 等),如果主机不使用,再将它们发送到 CEP 面板。为了解决这个问题,Adobe 提供了一种方法来“注册”希望保留在您的应用程序中使用的某些组合键,方法是传递一个 JSON 字符串,其中详细列出了您想要的键盘快捷键。
const csi = new CSInterface();
const keyEvents = [{
"keyCode": 90,
"ctrlKey": false,
"altKey": false,
"shiftKey": false,
"metaKey": true
}];
csi.registerKeyEventsInterest(JSON.stringify(keyEvents));
延伸
大量键盘快捷键以及跨平台的解决方案
const keyRegisterOverride = () => {
const platform = navigator.platform.substring(0, 3);
let maxKey;
if (platform === 'Mac')
maxKey = 126; // Mac Max Key Code
else if (platform === 'Win')
maxKey = 222; // HTML Max Key Code
let allKeys = [];
for (let k = 0; k <= maxKey; k++) {
for (let j = 0; j <= 15; j++) {
const guide = (j >>> 0).toString(2).padStart(4, '0');
allKeys.push({
keyCode: k,
ctrlKey: guide[0] == 1,
altKey: guide[1] == 1,
shiftKey: guide[2] == 1,
metaKey: guide[3] == 1
});
}
}
const csi = new CSInterface();
const keyRes = csi.registerKeyEventsInterest(JSON.stringify(allKeys));
console.log('Key Events Registered Completed: ' + keyRes);
};
注意事项
请注意,即使使用此方法,某些键盘快捷键也根本无法在 CEP 面板中使用,其中大部分都在 Mac 上,包括command/meta键
说明:如果有精彩文章或者技巧,欢迎投稿