Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
182 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。
9 T3 z' t7 g( ]3 o9 X- k" ]7 W虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。3 x  |* X) C- i9 c  f& W6 ^
那么为什么不增加一个插件机制呢,说干就干。
+ P+ E. k9 R1 J% i$ U8 [先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git
. u" }# p1 I; M# p3 P5 Z7 Z为neo neovm neogui 三合一,随时和NEO仓库保持同步。
& Y2 j$ P8 U3 g9 k先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口
: b: v8 c& F0 p) h5 v$ m0 s9 n4 [NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
) i/ L2 a- Q% Y( M' _* k
( c1 E$ ~' `. k4 t$ p5 n1 @" H3 ^然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。  A- i7 s6 B, o+ O: d7 @+ t
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。
" c; |, _9 c. d4 J这个插件机制就完成了。2 y4 s" n: D) `; r. N0 F' w
我们先来看一下效果
  m, ?3 ?% r* v- w0 }) C) i( O1 {% H+ l
刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。* [% H  y# g' u

! [3 K6 c" {/ s. a+ c3 B在运行程序的目录; L& r7 \5 |; T6 p) ]/ A- E

% N# j( Y( [' z; S创建一个文件夹: t  |' ]3 r# Q
把插件copy进去,重启gui即可生效。8 G8 N) F/ v0 Y+ \; q& x
我们先copy 一个 sample_plugin
" `9 X7 m% b1 A& d+ Y: I7 a* U3 g* ]: O) i9 E' X
效果如下,为这个插件增加了一个菜单项- H5 y2 L; a5 w; d
! p0 v# J# N) F! X6 l4 m
功能是简单的弹出了一个对话框; U0 `) a1 k  p- @2 t  l3 t8 g2 D
这个插件的源码非常简洁6 R( m5 W# ]* j' R* Q# J

: R5 E7 w4 P( }! N我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
) ^0 i$ |) O6 |( a- K. F9 g
6 j- j3 `0 X/ j% ]0 ?& G( Y5 W$ g5 B; N7 j
对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1