如何将插件集成到Electron应用程序中?

6
我正在寻找一种实现Electron工具的"插件"的方法。
以下是我认为它如何工作的伪代码示例:
提供.js/.zip/插件文件
文件将包含插件名称及其类别(全局、团队中心、杂项)
文件将包含用于GUI的HTML,该HTML将放置在指定用于工具空间的div中。此名称将添加为必要选择的选项,并添加逻辑以将HTML拉入同一div中
在工具中选择插件文件:页面将加载JavaScript脚本,并添加选择选项以及切换到插件的逻辑
希望自动化我的当前流程。 目前,我手动更新索引页面以引用新的JavaScript脚本,并添加选择选项 JavaScript脚本其中有逻辑查看选择,查看是否已选择该选项 然后通过其中的函数拉入自己的HTML
有什么可以参考或利用来使这个工作吗?
3个回答

15

经过4个多月的努力,我成功地让它工作了。我将尝试概述我的方法。

  • 每个“插件”或“工具”都需要自己的.js文件
  • js文件应包含一个exports.html函数,该函数将返回工具的html代码
  • js文件应包含一个exports.Events函数,该函数添加所有相关的事件监听器
  • 创建一个json文件,记录每个工具以及所需的信息,例如描述、图片路径、.js文件路径等
  • 在选择后需要时,要求加载.js文件,加载html和事件
  • 解析json以确定要加载哪个工具以及所需的信息

我只需要更新json文件并上传.js文件以添加新的插件。


3
请提供Git链接,如果可能的话。 - Bojan Krkic
你能分享一下git示例项目吗?谢谢回答。 - namal

4
我使用Vue作为前端开发了一个Electron应用程序。
我的想法是将插件开发为Vue插件并通过npm发布。
我使用live-plugin-manager来安装和卸载插件。
通过使用计数器自动删除依赖关系。
唯一的问题是如何将这些已安装的插件加载到我的主应用程序中。
我找到的解决方法发布在如何使用Electron动态加载已安装的Vue插件到插件文件夹的答案中。
希望能对您有所帮助。

4
我知道我来晚了,但我遇到了同样的问题。为了解决这个问题,我建立了一个名为Pluggable Electron的Electron插件框架,它可以在npm上使用。
该框架处理插件的生命周期,提供像安装、激活、删除等npm包的功能。然后可以随时调用插件来扩展核心应用程序功能。
该框架仍在开发中,但您可以在此处找到第一个版本:pluggable-electron
我希望对Marker来说已经太晚了,但我仍然在这里回答,以便其他人可能会有这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接