最後,我設法完成我在獲得。最終的Chrome擴展程序可以在GitHub上查看。
它是如何工作的?
我最初鏈接到的擴展需要將功能鍵「翻轉」爲實際功能鍵並且沒有特殊用途,但這樣做需要額外的擊鍵才能執行特殊功能(例如控制鍵盤背光,音量等)。
有了很大的幫助,從Patrick's answer,我使用的部件從nevyn/SPMediaKeyTap捕捉延伸和libwebsockets外的按鍵超過解僱他們的擴展:
- (void) handleKeyCode: (int) kcode withKeyState: (int) kstate
{
if (kstate) {
return; // keydown
}
// keyup
int len = 1;
unsigned char data[LWS_SEND_BUFFER_PRE_PADDING + len + LWS_SEND_BUFFER_POST_PADDING];
data[LWS_SEND_BUFFER_PRE_PADDING] = kcode;
for (int i = 0; i < num_clients; i++) {
libwebsocket_write(clients[i], &data[LWS_SEND_BUFFER_PRE_PADDING], len, LWS_WRITE_TEXT);
NSLog(@"Sent %d", kcode);
}
}
Chrome內,擴展簡單地注入相應的片的JS進入主機頁面:
this.onmessage = function (message) {
var keyCode = message.data.charCodeAt(0);
if (keyCode === 20) {
inject(function() {
window.R.player.previous();
});
}
if (keyCode === 16) {
inject(function() {
window.R.player.playPause();
});
}
if (keyCode === 19) {
inject(function() {
window.R.player.next();
});
}
};
+1感謝您的幫助。我肯定會研究這些。 – Whymarrh