Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
194 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。: u/ \. j1 W: ~* S' Q5 P3 v
虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。! _) n! |' g7 n7 q- ^$ V
那么为什么不增加一个插件机制呢,说干就干。
3 D8 q: X/ v+ V+ U/ Z先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git
  u. q' O$ Y* F. J7 x8 |为neo neovm neogui 三合一,随时和NEO仓库保持同步。. @2 i6 h0 q# A" ]% k  |
先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口
+ @- m9 R  Q, }8 }" Y# X! U# e( bNEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。& ]# z3 v% ~9 {3 P5 X
6 V; u- @5 J+ Z& z8 O5 \6 Y
然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。6 h* ?; C: F/ G, w4 l
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。( ?9 a+ q) z6 ^, l
这个插件机制就完成了。2 h* V4 C7 m, G
我们先来看一下效果
5 W% t8 l! _5 Q! j( f( n/ q# t
/ S0 f+ p; S' R* D5 C! ]* {5 w- L8 p; \刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。- Q$ r3 \: ]; d+ h5 {9 {

6 C- |8 s7 O" ^4 D8 x" |3 [" O  U在运行程序的目录
+ c! s( x' r& M
# V( m8 Z3 s. Q3 l6 S0 B6 m; n创建一个文件夹
) k! |2 b7 C) _% @把插件copy进去,重启gui即可生效。& U0 T) S$ {+ `3 m$ ?
我们先copy 一个 sample_plugin
) V  x/ l; k- K, H, V. b: _% c. O
* C5 M5 V' F4 @5 U效果如下,为这个插件增加了一个菜单项
5 k  l8 g9 @6 K6 _1 Z. E. a& T
; ]5 {* q3 c* J5 x功能是简单的弹出了一个对话框0 ?, b  B: }' j! y
这个插件的源码非常简洁
: v& j# @$ f% Z( u
" f1 z' G7 R/ ?) O) g我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
2 a: W* K1 m8 [+ w: a4 o! {% @' u$ t0 T1 X4 Z  Y9 ]5 E7 ?
$ g' M1 L& K3 n* y8 x1 ]
对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1