Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

为NEO-GUI 添加插件系统

qaz88889999
132 0 0
作为一个NEO区块链技术爱好者,经常要摆弄NEOGUI,而NEOGUI在众多开发者手中有了众多的分支实现,我也有自己的分支改版。这是一件很麻烦的事情。7 w8 P8 j0 O7 X9 x
虽然NEO-GUI定位为一个演示客户端与开发工具,不过使用他的开发者还是很多的,大家都要对NEO-GUI进行各式各样的修改。
, O. ]) ^- o0 O* f7 ]$ J  U4 P那么为什么不增加一个插件机制呢,说干就干。+ Z* o) ]' ]4 P# n$ r
先贴地址,此分支版本的源码在:https://github.com/lightszero/neo-gui.git* {/ p' {$ N( h3 X, M* Y0 @* Z
为neo neovm neogui 三合一,随时和NEO仓库保持同步。6 L8 S/ `: `" Y# r% L
先增加一个插件模块,里面有两个接口,一个IAPI,提供客户端暴露给插件使用的接口* k) Y7 N! J3 j7 A3 S0 @
NEOGUI 继承此接口。另一个是IPLUGIN,插件实现此接口。/ V+ f0 P! {& [/ ~# F9 D8 {
# r  N6 J( s9 r# f4 k0 d! I
然后在NEO-GUI启动时,动态寻找插件的dll,用反射方法找出其中的插件类型,并创建实例。
* A4 }; v: C/ p, r最后在NEO-GUI动态增加菜单,按下菜单时呼叫对应的插件。: v9 r, c3 A9 w+ X5 B2 K  X
这个插件机制就完成了。
& V7 k$ O+ k7 S" p3 K, n我们先来看一下效果
# o: d- O5 j: {. ]% k9 ~8 Z6 U8 d6 O8 C# F+ b4 c
刚加上插件机制,和普通客户端并无不同,那个good请无视掉,本来应该安置一个插件管理器什么的。
1 n! R5 `8 ?3 z. Y7 @* w4 a* r0 h& w7 |5 W4 f
在运行程序的目录3 i4 N, u8 \1 r+ _

9 U' p, E" Z2 a7 ~+ a创建一个文件夹
$ c0 i/ \1 @$ m5 B7 F把插件copy进去,重启gui即可生效。
; a0 ^9 B+ l, e9 _我们先copy 一个 sample_plugin6 `# ]/ m* y: P- X; I
  q% j0 }( W) a: s
效果如下,为这个插件增加了一个菜单项
0 ~) P' Q3 J; F/ @4 f; a2 S7 ~0 U8 D8 Y3 y
功能是简单的弹出了一个对话框
, l. }  m$ ^) J( Z; U8 V5 f这个插件的源码非常简洁: x& \. R0 T* T5 G( [

( s. @, t: C2 ^$ Q0 p8 ~我们再安装另一个插件,他有一个实际的功能,可以查询storage存储区里面的内容
+ ^- x' q3 I- u3 l
; [6 e$ _' B- Z$ S/ y
0 e- N8 H+ ~: x! a& Q+ }对neogui源码的侵入性也很小
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

qaz88889999 小学生
  • 粉丝

    0

  • 关注

    0

  • 主题

    1