插件是对一组 js 接口、自定义组件 或页面的封装,用于嵌入到小程序中使用。插件不能独立运行,必须嵌入在其他小程序中才能被用户使用;而第三方小程序在使用插件时,也无法看到插件的代码。因此,插件适合用来封装自己的功能或服务,提供给第三方小程序进行展示和使用。
插件vs组件vs控件
为了进一步直观的了解插件、组件、控件之间具体的差异,我用一张表罗列了彼此之间的对比:
名称
英文单词
概念
显著的特点
插件
plugin & addin
算是组件的一种,在原有的应用程序中,已经给它们预留了接口。接口,简言之就是一种规范。
可以被开发者添加到小程序内直接使用的,能为用户提供具体服务的功能组件。
即插即用,支持动态的插入
在应用程序中已经预留接口的组件就是插件
可直接提供服务
可以独立进行发版,开发和升级更高效
运行时框架提供上下文隔离机制,插件内部的数据安全性更有保障
组件
component
提起组件我们不应该把他和具体的技术,什么dll文件,ocx控件,activex等等联系起来,因为组件仅仅是一个概念,如果非要解释的话,那就是凡是在软件开发中用到了软件的复用,被复用的部分都可以称为组件,组件是给开发者提供的轮子,不能直接提供服务。
参考机械制造中的“零件”,它好比是组装在一起的满足一个功能单元的一组元件。
仅是一个宽泛的概念
是给开发者提供的轮子,不能直接提供服务
控件
control & widget
也算是组件的一种,顾名思义,用来给用户做控制的。做用户图形界面设计时,有一些“复选框”、“按钮”之类的东西,这些都是控件。所以可以把它理解为用来做可视化的一类组件。
是“可视化”的,例如表单中的按钮、文本框等
小程序插件的价值
小程序插件,顾名思义是用于小程序运行调用的插件,小程序插件的广泛推广使用可以实现“**开发资源共享”、“**可便捷强化能力”、“商业化变现”等积极作用。
1.开发共享,避免重复开发
在小程序内使用插件,可免去小程序开发者重复开发,一定程度上减少了开发工作量。例如:在小程序可以使用地图插件,开发者无需在小程序内独立开发地图内导航、出行指引、周边服务推荐等能力,直接使用地图插件即可为用户提供导航服务,免去很大量的开发工作。
2.强化能力,打造卓越产品
我们自己的技术、精力和成本都是非常有限的,开发出来的小程序的能力可能比较单一,如果想要应用到更多更复杂的功能就能够通过快速引入小程序插件的方式增强自己的产品能力。例如:想要在小程序实现产品的销售,使用店铺插件,用户即可通过小程序完成产品预订、购买、评价等功能。
3.商业变现,能力有目共睹
插件支持商业订购和结算,质量优秀和普适性较高的小程序插件可以借助各大平台的小程序插件市场对开发的插件进行封装售卖,便于开发者进行服务变现和商业化。
小程序插件的技术原理
插件本身的技术原理并不复杂。插件的木质是在不修改程序主体的情况下对软件功能进行加强,当插件的接口被公开时任何人都可以自己制作插件来解决一些操作上的不便或增加一些功能。
一个插件框架包括两个部分:主程序(host)和插件((plug-in)。主程序即是“包含”插件的程序,插件必须实现若干标准接口,由主程序在与插件通信时调用。
小程序插件代码由一些自定义组件和 JS 代码文件构成,插件开发者在发布插件时,这些代码被上传到后台保存起来。当小程序使用插件时,使用者需填写插件的 AppID 和版本号,就可从后台获取相应的插件代码。小程序代码编译时,插件代码会被嵌入到小程序中,与小程序一起编译运行。
插件商业变现的建议
目前开发者完成小程序插件的开发后,可以将自己的插件上架到微信小程序插件市场、支付宝小程序插件市场、FinClip 小程序应用市场等。前两者不言而喻是最大的小程序生态市场,变现的能力较为强劲,而 FinClip 则主要是面向 B 端用户群的小程序容器技术,利用其技术一些企业可以在自有 App 运行小程序,或者将自有小程序转化为 App ,这两类场景也都有集成小程序插件的场景,也同样具有一定的潜力。
正好也看到 FinClip 近期在开展开发者插件调研相关的活动,参与即可抽取周边精美礼品,看到的同学可以去围观下~