Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
136 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。  @0 c# S/ s5 D5 d) {% T: L+ P
虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。
9 e$ |  _8 \  `( c那么为什么不增加一个插件机制呢,说干就干。: f+ T! H3 H9 j' s
先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git
7 h- X5 T& a8 B' u1 V: z为neo neovm neogui 三合一,随时和NEO仓库保持同步。
( `' o. A4 r+ V& ]; g- B先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口+ j& A$ G+ [7 r
NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
" r7 T# ^5 M: h. c% Q' s6 A2 Z+ T# ]) i& F4 v
然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。- M& f1 ]. t4 g* B: C+ D
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。
( x, |' y6 K7 b1 N/ W1 f# t% c这个插件机制就完成了。7 M, P8 L- U7 W6 y9 K: ?
我们先来看一下效果/ U7 X; z* t6 ~$ `3 ?1 o( k9 [2 e' R

$ @# z% n. o7 r  [* f0 Z刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。5 K6 u% ~* N5 y1 d  ~

  C* W* |* G* R0 ?% S. j- Y0 F' j, S在运行程序的目录) J/ ]% c( ~3 j7 v3 K' C
8 t! r  Y2 K: `' A% G2 Y
创建一个文件夹
9 y, D$ [6 b5 z) u! ]1 H把插件copy进去,重启gui即可生效。( I7 @4 F3 c2 T' |
我们先copy 一个 sample_plugin& W8 z. [' j" x" Q" t, b

+ Y& s- y: C7 ]9 ]  }* g效果如下,为这个插件增加了一个菜单项3 D0 T3 M. U- j1 j. G
2 d% U5 e0 f, I, k! L
功能是简单的弹出了一个对话框
; ?9 z9 l  ^; T' F& r( U这个插件的源码非常简洁& Z0 B+ f5 i1 g; n, L, ~

) O& _* s, \6 o/ [我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容. z2 n- J$ r2 D8 ^) i! _' E6 }

* g1 C$ y* s( b8 N3 W* u. b
9 n' N% d, P! p- W( u! u对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1