Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
116 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。
& j) q; {+ O$ X4 z" `/ I6 v虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。
" u0 Y* U6 x# E+ k0 Q那么为什么不增加一个插件机制呢,说干就干。
, Z7 g! a1 f+ P; N先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git4 T1 h/ L5 A  {  g; C8 f
为neo neovm neogui 三合一,随时和NEO仓库保持同步。
/ d9 Q. L9 O/ J4 ?- z& h先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口# S  L8 I$ i& u4 d8 |8 _' @
NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
- d+ U" I  n% p1 p8 I1 n( N- O6 n4 p6 E# g2 I+ M: s: j
然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。# ~3 g$ h% v3 a  g* h. Z
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。4 u# J9 @! k# k% u  \8 R+ R' A
这个插件机制就完成了。
0 S5 W7 F! N. p我们先来看一下效果( x1 o  D9 G: y1 _6 i& a. B3 b8 v
6 u# P" a% N1 c
刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。
3 z/ @' ^! H4 U  B+ ?. x7 B" \" `$ C+ P" u$ O) g$ `
在运行程序的目录; J+ B  G  N+ t. X$ H5 I  f/ ~

) ]& `) x) p3 y) k创建一个文件夹
+ \( _4 {* x" T6 q9 h把插件copy进去,重启gui即可生效。
+ X4 u& S& t) U1 |. F我们先copy 一个 sample_plugin
0 E; y' s# L7 a1 D! n7 _4 g  t+ |; _: t. J# a5 D. D+ v7 }
效果如下,为这个插件增加了一个菜单项
9 I% `0 M/ b$ I) F- x+ M* w2 k7 E/ n6 h
功能是简单的弹出了一个对话框
8 [6 u; A5 o- f1 B7 m& @: S这个插件的源码非常简洁2 |2 P2 ]# h, S2 z' U2 b" z2 G
6 C1 q* q8 \- N$ F4 `' _  Q3 ~
我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
0 v  x/ m! x& E) _
( O% A7 d6 d3 H: ?. d$ E+ K6 A0 y8 v4 g
对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1