为NEO GUI构建插件机制及NNS插件示例

naoye 7月前 272

作为一个NEO区块链技术爱好者,大家想必经常要使用NEOGUI,由此NEOGUI在众多开发者手中就有了众多的分支实现,也许看文章的你就有自己的分支改版。这是一件很麻烦的事情,而且对于NEO-GUI来说显得没那么优雅。

虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改,都要重复去修改main窗口的菜单定义或者是艰苦寻找发送交易的签名方法。

那么为什么不增加一个插件机制呢,让给NEO-GUI附加自己的个性功能更简单、更优雅,let’s do it

 

先贴地址,此分支版本的源码和若干插件示例在

https://github.com/NewEconoLab/neo-gui-nel.git

neoneo-vmneo-gui 三合一,随时和NEO仓库保持同步。

 

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

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

 



 

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

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

 

这个插件机制就完成了。

我们先来看一下效果


 

 

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

在运行程序的目录


 

创建一个文件夹


 

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

我们先copy 一个 sample_plugin


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


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

 


这个插件的源码非常简洁


 

我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容




 

neo-gui源码的侵入性也很小


目前只修改了这么多neo-gui的源码。

 

此外,NELNNS项目在GUI开发过程中也使用了这个插件机制。


NEL NNS具体详情可以访问:

https://github.com/NewEconoLab/neo-ns

 

目前已经开发完成实验版解析器GUI


通过这个界面,可以支持任何人查询域名对应的地址,允许域名所有人定义域名地址。所有合约执行过程可以在下面的运行监视器查看。

 

我们再来看域名第一个应用示例:域名转账



通过这个界面,可以实现域名转账,我们再也不用记忆、查看、确认人类难以理解的地址字符了。

 

这就是NEL社区提供的插件版neo-gui,希望可以帮助到Neo开发者。


最后于 6月前 被naoye编辑 ,原因:
最新回复 (0)
全部楼主
返回