Я пытаюсь создать плагин NPAPI для прослушивания Media Keys на macbook и передать его в javascript для управления такими вещами, как pandora или soundcloud.Я использую библиотеку Spotify SPMediaKeyTap, которая просто оборачивает CGEventTap, работающий в отдельном потоке.
Моя проблема в том, что я использую npn_invoke для обратного вызова javascript.Это работает нормально, но когда он запускается из-за обратного вызова CGEventTap, происходит сбой плагина.Я понимаю, что это нужно запустить из потока подключаемого модуля, и я попытался передать его обратно в основной поток, используя [NSObject executeSelectorOnMainThread] и [NSObject executeSelector: onThread] с потоком, который я сохранил в главном потоке.Плагин темы создания метода.Оба эти решения по-прежнему дают сбой при любом вызове npn.Есть ли что-то еще, что происходит при обработке события CGEventTap, которое вызывает недопустимое состояние для вызовов взаимодействия с браузером NPN?