Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
135 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。
2 d+ Y  @0 h3 g' |9 e. F  H! G' O虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。8 J0 l3 u. j9 ~" W! A
那么为什么不增加一个插件机制呢,说干就干。
, A/ D' Q2 [0 s0 T( v" e先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git
7 ?" Z2 S$ [) d为neo neovm neogui 三合一,随时和NEO仓库保持同步。+ j- d4 J6 u4 f# J
先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口: D( `; b% @+ k
NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
7 {( e: Y% {) _: ~* M& [7 n+ V/ u9 e. {; z. T2 F. r
然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。
0 z/ H+ e" _$ e! F" Q- ]最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。
* F9 X* E5 Y# K6 X/ b这个插件机制就完成了。
7 x$ x- X: H( X我们先来看一下效果' F% I& E3 U0 t0 a

7 k6 T* H' ]( [. h8 o刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。
* s3 [1 u' `! r
3 ^; |8 R: q2 G在运行程序的目录- \. ]5 ~- C9 E) M. t& t
+ ]% s4 F% j% ?# a8 ^
创建一个文件夹! C. A0 z$ R  ^2 c9 i
把插件copy进去,重启gui即可生效。2 y/ k, ~- A: R: `- g4 S# a
我们先copy 一个 sample_plugin7 H; G, m' y% e! i+ L9 ^
/ y7 ?6 b: K5 K, t% x% L! |
效果如下,为这个插件增加了一个菜单项
( t$ T0 s7 x( i$ W& j  k5 f) S: m4 g- Y3 `
功能是简单的弹出了一个对话框
" Q7 T' q1 W4 [2 K- E6 _这个插件的源码非常简洁2 A4 R$ u8 p/ Y$ u

  `; V/ J; A1 L0 P我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
5 f' ~5 [4 ]" q2 }) O7 E: h
! d( o# g6 M, T8 k6 q4 g( m0 J1 f
. R$ M5 a& G6 A6 H6 G对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1