插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。
其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。
看看各大平台给出的关于插件的概念描述吧
插件,是可被添加到小程序内直接使用的功能组件。
开发者可以像开发小程序一样开发一个插件,供其他小程序使用。
同时,小程序开发者可直接在小程序内使用插件,无需重复开发,为用户提供更丰富的服务。
支付宝小程序官方描述:
插件是一种独立封装的软件模块,用来承载企业的能力或者服务,便于宿主小程序进行快捷集成。
和普通组件不同的是,插件拥有独立的应用和独立的上下文,即数据、业务逻辑和服务端连接。
当小程序应用需要使用插件的服务时,加载和运行插件,以使得插件访问自身的数据与服务端,完成对应的服务;而在小程序不需要使用插件的服务时,只需要运行小程序应用本身,访问小程序应用自身的数据服务端。
插件和宿主小程序上下文是互相隔离的,即小程序应用不能直接访问插件的数据,也不能获得插件的权限,反之,插件也不能直接访问小程序的数据,也不能获得小程序的权限。
插件
算是组件的一种,在原有的应用程序中,已经给它们预留了接口。接口,简言之就是一种规范。
可以被开发者添加到小程序内直接使用的,能为用户提供具体服务的功能组件。
组件
提起组件我们不应该把他和具体的技术,什么dll文件,ocx控件,activex等等联系起来。
因为组件仅仅是一个概念,如果非要解释的话,那就是凡是在软件开发中用到了软件的复用,被复用的部分都可以称为组件,组件是给开发者提供的轮子,不能直接提供服务。
控件
也算是组件的一种,顾名思义,用来给用户做控制的。
做用户图形界面设计时,有一些“复选框”、“按钮”之类的东西,这些都是控件。所以可以把它理解为用来做可视化的一类组件。
从微信给出的定义就可以知道单单具备某个功能的这么一个组件并不是插件,插件是需要能够提供完整的一个服务的。
小程序插件的价值
1.开发共享,避免重复开发
在小程序内使用插件,可免去小程序开发者重复开发,一定程度上减少了开发工作量。
如:在旅游景区的小程序可以使用地图插件,开发者无需在小程序内独立开发地图内导航、出行指引、周边服务推荐等能力,直接使用地图插件即可为用户提供导航服务,免去很大量的开发工作。
2.插件可提供针对行业的完整服务,同时覆盖线上线下
商家希望借助小程序更好地连接用户和服务,包括线上、线下服务。线下服务往往人力成本、硬件设备等要求较高,商家在小程序内提供完整服务的门槛较高。
而插件不仅可以解决线下服务的问题,还能针对特定行业提供全套完整服务。
对于餐饮、零售等线下行业而言,插件极大降低了商家的成本,商家只需在小程序内引用插件,即可使用由插件开发者提供的预订、外卖等服务,节省了成本。
3.降低服务门槛的问题,实现「服务共享」
具有开发能力及服务资质的开发者,可将自己的服务封装成插件,提供给其他小程序使用,实现「服务共享」。
提供充分的接口文档和示例,方便插件使用者了解插件的使用方法;
注意保持插件不同版本间接口的稳定,使插件使用者能顺利升级插件;
计算小程序代码包大小时,插件代码也会一并计算在内,所以应当控制好插件代码的大小。
目前开发者完成小程序插件的开发后,可以将自己的插件上架到微信小程序插件市场、支付宝小程序插件市场、FinClip小程序应用市场等。
前两者不言而喻是最大的小程序生态市场,变现的能力较为强劲,而 FinClip 则主要是面向 B 端用户群的小程序容器技术,利用其技术一些企业可以在自有 App 运行小程序,或者将自有小程序转化为 App ,这两类场景也都有集成小程序插件的场景,也同样具有一定的潜力。