开发一个浏览器插件的一些技巧

此模式的浏览器插件,并不是chrome 以及firefox 模式的插件,而且可以独立运行,同时包含gui 的浏览器插件(与ie 早期的activex 插件类似)

开发说明一些细节

  • 开启一个windows protocol 
    可以windows protocol 的目的是提供开启插件gui 的能力,当然如果windows protocol 支持的比较好也是可以包含业务逻辑的,比如electron 的就可以基于协议进行一些操作
  • 提供一个webserver 
    提供一个业务功能操作,web 可以直接通过js 与local server 的通信,提升可靠性,注意webserver 需要使用一个独立的大端口同时注意监听最好在localhost(相对安全些)
  • 提供gui 能力 
    此功能并不是强需,只是有些业务场景我们是需要包含gui的,比如文件下载类的(百度云盘下载插件等)

可选技术栈

  • gui 开发 
    基于nodejs 技术栈 
    使用node+webkit 集成的模式,此模式框架就比较多了,nodegui,neutralino,gluon,electron,tauri,maui 
    基于qt的技术栈 
    qt 是一个很不错的跨平台技术方案 
    平台特定的gui 框架 
    比如.net 可以使用winform(wpf 也是可以的),对于mac 可以使用mac 的appkit , 当然目前dotnet 也提供了跨平台的gui 能力
  • 协议注册 
    对于基于electron 内部直接包含,基于qt 的可以自己注册(插件需要安装,安装的是否配置)或者基于protocol-registry node npm 包
  • webserver 启动 
    此模式对于node 以及qt 都是可以支持的,并没有太多难度

说明

以上是一个简单的总结,对于需要类似插件功能的业务可以参考, 实际上基于浏览器标准扩展模式的插件开发也是一种方式,但是很多时候可能开发的功能不太符合
实际业务,基于以上模式相对比较灵活,但是也是有成本的

参考资料

https://github.com/gluon-framework/gluon
https://neutralino.js.org/
https://github.com/neutralinojs/neutralinojs
https://www.electronjs.org/
https://github.com/electron/electron
https://tauri.app/
https://github.com/tauri-apps/tauri
https://github.com/Elanis/web-to-desktop-framework-comparison
https://github.com/dotnet/maui
https://avaloniaui.net/

posted on 2023-03-20 12:12  荣锋亮  阅读(392)  评论(0编辑  收藏  举报

导航