Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
153 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。
9 g8 |6 I8 X4 ?4 y) L虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。
* p0 H% I( j1 q8 [那么为什么不增加一个插件机制呢,说干就干。& B% Q3 X' O4 \* y' [4 J0 N' _
先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git# o$ s  Z$ L) N1 C9 ]
为neo neovm neogui 三合一,随时和NEO仓库保持同步。
4 k. j3 U% |- k( T. o先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口3 B" N% ~, ~1 C$ U" m2 y
NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
/ r1 J. J2 y& l0 }8 q, J
& Z6 I' i5 J" [! f然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。* [( E4 j9 t7 q1 u9 A6 U
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。. x" {$ z3 p5 X7 q# p2 `# G" E
这个插件机制就完成了。
4 J( O( T0 Y, Z' r; H( E( p' J2 T我们先来看一下效果, U1 O8 ~; `8 X! r. U  j+ _
" M# Y+ f; ?* O8 o6 ?& u! ~4 t
刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。! X% ^& V* |4 }5 A+ W% H6 m3 T' J
1 U. c& g/ S& [$ Z. ?
在运行程序的目录
* p8 U( j9 \( r  e
  v$ X$ d. S/ H1 r$ `/ \创建一个文件夹6 d( c' L/ c3 c" X  h
把插件copy进去,重启gui即可生效。1 j6 a5 k: F7 Z0 s4 Z/ K
我们先copy 一个 sample_plugin) r  Q  ?+ M  c% i, G$ V/ ~

) Q- d' r0 I2 ?" X% e效果如下,为这个插件增加了一个菜单项* k1 P/ _1 x, e% E; B

  b: q* H( j: L! ^* c. c# e( d8 |功能是简单的弹出了一个对话框
5 d$ I* r) U& f  j+ O7 _' \这个插件的源码非常简洁
- y: t/ c! m+ d, v7 s
; x0 k8 G$ G% a) P( ?, P9 q5 E1 c  B我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
9 Y+ E! o6 T1 a3 [, N& Y8 E4 N4 V, c! V4 q% ~$ d7 E- E
# G" e# W$ {* m; q, P
对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1