Как встроить расширение для Mac в приложение Electron?
Я пытаюсь встроить расширение Finder Sync, написанное на Swift, в мое приложение, написанное на Electron. Как я могу заставить их работать вместе и общаться друг с другом? Я прочитал документацию Apple, но она только объясняет, как добавить цель в собственное приложение. Я также заметил, что я могу вручную ввести .appex
скомпилированный файл (созданный XCode) в приложении Plugins
папка с использованием электронного компоновщика. Как я могу разработать и протестировать расширение в XCode и правильно встроить его в пользовательское приложение Electron? Любое предложение?
Большое спасибо за любое предложение
2 ответа
Создайте папку PlugIns в вашей корневой папке Electron.
Скопируйте файл.appex в папку PlugIns.
Если вы используете электронный сборщик, измените файл package.json - добавьте: "extraFiles": ["PlugIns/"]
в разделе "Mac".
Построить. Пакет содержимого вашего приложения будет содержать папку PlugIns и ваш файл приложения, и приложение будет загружено в процесс вашего приложения.
Как встроить расширение для Mac в приложение Electron?
Я бы скомпилировал его как независимый двоичный файл и включил бы его в какой-нибудь каталог для запуска из приложения электрона с помощью child_process.execFile
Вы можете использовать аргументы при выполнении двоичного файла с execFile, вот пример (с использованием обещания)
const util = require('util');
const execFile = util.promisify(require('child_process').execFile);
async function FinderSyncExtPlugin(ARGUMENTS) {
const { stdout } = await execFile('YourBinary', ARGUMENTS);
console.log(stdout);
}
FinderSyncExtPlugin(['argument1','argument2','...']);
Затем вы можете использовать стандартный вывод, чтобы узнать статус / результат запрошенной операции.