Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
137 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。
% z& Z! \% t2 s1 f2 _" b& ?虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。
6 G- P6 B% f. y% K7 q- _* ^) k; A+ V那么为什么不增加一个插件机制呢,说干就干。! U( S7 G6 Z8 e! G* r
先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git6 b  g$ H3 ?& {8 o) d
为neo neovm neogui 三合一,随时和NEO仓库保持同步。+ d$ `9 y& H. o+ |' _5 S; o
先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口
9 Z6 |4 e8 s! WNEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。
, R2 Z, H/ t" u7 |3 `; m% x# `& S7 U6 G' Z! O% I* K& t" f
然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。  S5 U% j" E: c8 p4 I) a
最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。- |: w9 \- ~3 Y/ `
这个插件机制就完成了。6 h% O0 ^1 D5 V; V/ c
我们先来看一下效果
/ j5 r  u* X/ ?1 e
$ `0 J7 Z$ X4 d) ~0 W6 X" w$ ]* j刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。; h. }1 `5 X) u$ I

' S! z( K+ p2 g6 w5 S$ H+ X在运行程序的目录/ b% J* m1 P1 V; p
7 Y) \* |+ }7 `4 H* O$ H! u
创建一个文件夹. m; j5 X: P% I; G! k
把插件copy进去,重启gui即可生效。
: {5 A" D' f+ Q# K2 |$ B/ t5 R1 W. ^我们先copy 一个 sample_plugin
5 y  k9 f' Y4 v' _- H+ y, R! h- K! R: |9 a) o7 N% U0 G
效果如下,为这个插件增加了一个菜单项
- R+ @: H4 f) V
+ m% Z' ~$ c- q/ y. R5 n/ ]$ y% j功能是简单的弹出了一个对话框
$ n, I- @8 Q: T. ]这个插件的源码非常简洁$ V# m) B, N- a( {, b: h
' s+ l) w, \3 ^" b
我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
: m- Y9 \2 c- }; ^
3 ?$ t" W" k3 ~; P5 L  A! @0 k4 k3 B
对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1