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

时间:2017-08-10 11:30:24

标签: node.js xcode macos electron findersync

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

非常感谢您的任何建议

2 个答案:

答案 0 :(得分:1)

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

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

如果您使用的是电子制作工具,请修改 package.json 文件 - 添加: " mac"中的"extraFiles": ["PlugIns/"]部分。

构建。您的应用包的目录将包含PlugIns文件夹和您的appex文件,并且appex将加载到您应用的流程中。

答案 1 :(得分:0)

  

如何在电子应用中嵌入mac app扩展程序?

我会把它编译成一个独立的二进制文件并将其包含在某个目录中,以便使用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','...']);

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