跟老姚学前端,课程体系更完善,10%基础 + 90%实战演练,快人一步学编程

扫一扫浏览

小程序•小故事(5)——小程序插件

未结贴
0 4464
江南坦克站长未认证 2018-04-25 10:45:41
收藏

背景

小程序插件简介

小程序插件是可以被开发者添加到小程序内直接使用的,能为用户提供具体服务的功能组件。
插件开发者可像开发小程序一样开发插件,除了在自己的小程序内使用,还能提供给其他小程序直接使用。
插件使用者无需独立开发小程序内的所有服务,无需理解插件内部逻辑和实现方式,可直接使用别人开发好的插件,为用户提供相应服务。

推出小程序插件的原因

小程序的初衷是希望更好地连接用户和服务。自上线以来,越来越多的商户、开发者开发自己的小程序。
早晨起来在小区电梯内,扫小程序码,即可叫个早餐外卖;
走到门口,扫共享单车的二维码,骑车即走;
到了公司,即可打开小程序轻松打卡,开始美好的一天上班生活
……

随着小程序的普及,越来越多的路边小摊、餐饮小店、夫妻店也希望接入小程序。许多商家会给我们留言:
“我只会简单开发,不会做复杂的功能怎么办?”
“我也想给餐馆小程序做一个预约订餐功能,要怎么搞?”
“客户可以在我的小程序里查询快递信息吗?”
“我没有数据,可以在小程序里做地图查找功能吗?”……

我们总结出大家目前遇到的几个难题:

1.开发技术有限,实现复杂功能难度大
2.人力、设备、资源有限,实现服务成本高
3.缺乏某些类目的资质,
如电商、打车

小程序插件的应用

1.开发共享,避免重复开发
在小程序内使用插件,可免去小程序开发者重复开发,一定程度上减少了开发工作量。

如:在旅游景区的小程序可以使用地图插件,开发者无需在小程序内独立开发地图内导航、出行指引、周边服务推荐等能力,直接使用地图插件即可为用户提供导航服务,免去很大量的开发工作。

2.插件可提供针对行业的完整服务,同时覆盖线上线下
商家希望借助小程序更好地连接用户和服务,包括线上、线下服务。线下服务往往人力成本、硬件设备等要求较高,商家在小程序内提供完整服务的门槛较高。而插件不仅可以解决线下服务的问题,还能针对特定行业提供全套完整服务。

以景区服务小程序为例,使用门票购买插件,用户可在小程序内完成门票线上预订、购买等流程,在到达景区后,通过插件服务提供商提供的移动终端或硬件设备,可完成门票兑换、核销。
而对于餐饮、零售等线下行业而言,插件更是极大降低了商家的成本,商家可以使用预订、排队、外卖等插件,由插件开发者提供线下服务,商家只需在小程序内引用插件,即可使用由插件开发者提供的预订、外卖等服务,节省了成本。

3. 降低服务门槛的问题,实现“服务共享”
具有开发能力及服务资质的开发者,可将自己的服务封装成插件,提供给其他小程序使用,实现“服务共享”。

插件的技术原理

插件本身的技术原理并不复杂。插件代码由一些自定义组件和 JS 代码文件构成,插件开发者在发布插件时,这些代码被上传到微信后台保存起来。
当小程序使用插件时,使用者需填写插件的 AppID 和版本号,以便从后台获取相应的插件代码。小程序代码编译时,插件代码会被嵌入到小程序中,与小程序一起编译运行。

小程序与插件的交互

根据需要,插件代码可以提供 JS 接口或自定义组件供小程序调用。JS 接口可以用于界面无关的逻辑,自定义组件可以嵌入界面中展示。

对于插件使用者来说,插件的调用方法很简单。
1.使用插件 JS 接口
与普通 JS 文件间 require 的方式一样,只需要将require(FILE_NAME) 改成requirePlugin(PLUGIN_NAME) 这样的调用形式。

2.使用插件提供的自定义组件
与使用普通自定义组件的方法非常相似。json文件的 usingComponents 段落中,按照plugin://PLUGIN_NAME/COMPONENT_NAME 的形式使用即可。

对于插件开发者而言,这里给出几点建议:

1.提供充分的接口文档和示例,方便插件使用者了解插件的使用方法;

2.注意保持插件不同版本间接口的稳定,使插件使用者能顺利升级插件;

3.计算小程序代码包大小时,插件代码也会一并计算在内,所以应当控制好插件代码的大小。

插件代码运行环境

插件代码的运行环境与小程序代码有一定的区别,主要是以下两点:

1.插件可以发起网络请求的域名与小程序不同,因此插件开发者需要注意在插件后台的设置中正确配置网络请求域名
2.插件可以调用的 API 有一定的限制,并不是所有的接口插件都可以调用,如页面跳转相关的接口是不允许插件调用的。插件开发者在使用一些特殊接口前,请查询文档中的插件可调用接口列表。

此外,目前一个小程序最多可使用5个插件,赶紧将插件用起来,节约开发者成本吧。

详情可参考《小程序插件接入指南》


- END -

第四期回顾:小程序•小故事(4)——获取用户信息

第三期回顾:小程序•小故事(3)——更新机制

第二期回顾:小程序•小故事(2)——代码片段

第一期回顾:小程序•小故事(1)——分包加载


如果大家有想了解的小程序相关能力的故事,欢迎在评论区留言,我们后续会考虑将这些能力背后的故事分期分享给大家。

最近热帖 HOT TOPIC
【全套视频】thinkphp5视频教程 85794
父元素flex之后,子元素高度自适应问题 10855
一张纸的厚度是0.01毫米,则该纸对折30次后是多厚(据说超过珠穆朗玛峰的高度)php实现 9849
thinkphp5隐藏默认模块的一些问题 9319
api接口文档插件easydoc的基本用法,快速搞定接口文档 9268
omnicore rpc api中文手册【usdt】 9087
PHP如何判断字符串是否为json格式 9003
教你如果处理高并发数据不同步的问题php篇 8942
关于thinkphp5.0.x getshell漏洞的说明 8668
使用宝塔linux面板创建FTP无法连接的解决办法(阿里云或腾讯云) 8440
月度热议HOT COMMENTS
【全套视频】thinkphp5视频教程 70
tpframe 后续版本你希望有的功能是什么(分享贴) 12
权限那里怎么一登录别的账号就报错啊 9
关于tpframe的一点话题 6
cms插件在分类排序的时候JSON错误 6
基于tpframe v3.x 的微信公众号插件已批量上线 5
tpframe插件tcms插件v2.2已发布上线,欢迎下载使用 5
tpframe6.0马上就要跟大家见面了,一次全新的升级 5
透析thinkphp5升级版开发框架tpframe 3
新增的管理员没有权限操作CMS模块。 3
爆料早知道: