8

我正在尝试在我用Electron编写的应用程序中嵌入一个用 Swift 编写的Finder Sync 扩展。我怎样才能设法让它们一起工作并相互交流?我已阅读 Apple文档,但它仅说明了如何将目标添加到本机应用程序。我还注意到我可以使用electron builder在应用程序文件夹中手动注入编译文件(由 XCode 生成)。如何在 XCode 中开发和测试扩展并将其正确嵌入到自定义 Electron 应用程序中?有什么建议吗?.appexPlugins

非常感谢您的任何建议

4

2 回答 2

3

在您的 Electron 根文件夹中创建PlugIns文件夹。

.appex文件复制到 PlugIns 文件夹中。

如果您使用的是 electron-builder,请修改package.json文件 - "extraFiles": ["PlugIns/"]在“mac”部分添加:

建造。您的应用程序包的内容将包含 PlugIns 文件夹和您的 appex 文件,并且 appex 将被加载到您的应用程序的进程中。

于 2018-02-23T06:10:16.733 回答
0

如何在 Electron 应用程序中嵌入 mac 应用程序扩展?

我会将其编译为独立的二进制文件,并将其包含在某个目录中,以便使用child_process.execFile从电子应用程序执行

使用 execFile 执行二进制文件时可以使用参数,这是一个示例(使用 promise)

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','...']);

然后,您可以使用标准输出来了解所请求操作的状态/结果。

于 2017-08-18T20:36:51.460 回答