资讯专栏INFORMATION COLUMN

为NEO-GUI 添加插件系统

ccj659 / 1293人阅读

摘要:另一个是,插件实现此接口。最后在动态增加菜单,按下菜单时呼叫对应的插件。在运行程序的目录创建一个文件夹把插件进去,重启即可生效。

作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。

虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。

那么为什么不增加一个插件机制呢,说干就干。

先贴地址,此分支版本的源码在

https://github.com/lightszero...

为neo neovm neogui 三合一,随时和NEO仓库保持同步。

先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口

NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。

然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。

最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。

这个插件机制就完成了。

我们先来看一下效果

刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。

在运行程序的目录

创建一个文件夹

把插件copy进去,重启gui即可生效。

我们先copy 一个 sample_plugin

效果如下,为这个插件增加了一个菜单项

功能是简单的弹出了一个对话框

这个插件的源码非常简洁

我们再安装另一个插件,他有一个实际的功能,

可以查询storage存储区里面的内容

对neogui源码的侵入性也很小

目前只修改了这么多NeoGUI的源码。

作者:李剑英

原文链接:http://www.cnblogs.com/crazyl...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72659.html

相关文章

  • typecho插件编写教程7 - Helper类

    摘要:输出类似强行删除某插件此方法用于卸载插件失败时的替补方法,老高一般将此方法写入插件的方法里,这样刷新以下后台,出问题的插件就被卸载了。比如老高的插件,就用此方法为系统添加了一个的路由。 此文原本发表于我的博客 老高的技术博客 ,欢迎和老高交流! Helper类为我们封装了很多与插件有关的操作,并且全部是公共静态方法,比如获取系统配置、添加路由、添加面板等功能,是开发插件必不可少的工...

    Carson 评论0 收藏0
  • October CMS - 快速入门 5 创建插件

    摘要:创建插件对于来讲是很简单的事情,因为,提供了一个插件构建器具体步骤这里就不赘述了。安装完成后,会出现上图所示的菜单创建自己的插件的方法是点击如下图所示的小按钮。 创建插件对于October来讲是很简单的事情,因为,October提供了一个插件构建器:RainLab.Builder showImg(https://segmentfault.com/img/bVbcoxL?w=1266&h...

    macg0406 评论0 收藏0
  • cordova研习笔记(一) —— 初试牛刀之cordova.js概要

    摘要:任何初始化任务应该在文件中的事件的事件处理函数中。这个配置文件有几个地方很关键,一开始没有认真看,将插件导进工程跑的时候各种问题,十分头痛,不得不重新认真看看文档。 前言 来新公司的第一个任务,研究hybrid App中间层实现原理,做中间层插件开发。这个任务挺有意思,也很有挑战性,之前在DCloud虽然做过5+ App开发,但是中间层的东西确实涉及不多。本系列文章属于系列开篇cord...

    buildupchao 评论0 收藏0
  • 使用LeanCloud服务做一站式Chrome插件开发——Favorite Image

    摘要:云存储问题,帐号系统,多端同步最开始只想做浏览器本地的存储,使用提供的存在本地就。具体解决方案云存储及帐号系统使用提供的存储服务解决。 0. 目录 要开发的是什么项目 1.1 想法开端 1.2 应该有什么功能? 开发需要解决的核心问题 具体解决方案 3.1 帐号系统 3.2 存储服务 3.3 使用`LeanEngine`做反防盗链中转接口 3.4 Chrome 插件实现 对去...

    JohnLui 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<