微信小程序插件 - 开发教程
昨天(2018.3.13),微信小程序发布了重大功能更新,支持插件的使用和开发,个人预计,不超过2个月,优质服务的插件将会如雨后春笋般涌现。
这篇文章,我将会带大家,从0开始,学习如何开发和使用插件。文章分为3个章节:
1、什么是微信小程序插件
2、如何开发微信小程序插件
3、如何使用第三方微信小程序插件
备注:为了节省文字内容,我会将“微信小程序插件”简称为“插件”。
什么是微信小程序插件?
插件一组由js和自定义组件封装的代码库,插件无法单独使用、也无法预览,必须被其他小程序应用嵌入,才能使用。它和NPM的依赖、Maven的依赖库是一个道理。
不过,插件和NPM、Maven依赖管理不同的是:
插件拥有独立的API接口和域名列表,不被小程序本身的域名列表限制。(NPM依赖进来的库不能进行第三方数据请求)
插件必须由腾讯审核通过才能使用(NPM无需腾讯审核)
使用第三方插件必须向第三方申请 (通过NPM使用第三方库无需向第三方申请)
所以,我觉得:在未来,插件应该会被第三方打包成为服务,而不仅仅只是一个代码库。
如何开发微信小程序插件?
下载最新的微信小程序开发者工具,(必须是 1.02.1803130 版本以上),打开开发者工具,进入小程序项目,我们会看到“代码片段”标签,如下图:
点击,右下角的 “创建” 按钮,就可以创建插件了,如下图:
插件的AppId和之前的微信小程序的AppId是同个道理,需要在微信开发者后台新建一个微信小程序插件:
微信小程序插件的名称也必须是独一无二的,申请完毕后就可以获得 插件的AppId了。
填写名称和插件AppID后,进入小程序项目,如下图显示:
项目的代码目录结构如下:
├── miniprogram
│ ├── app.js
│ ├── app.json
│ └── pages
├── plugin
│ ├── api
│ ├── components
│ ├── index.js
│ └── plugin.json
└── project.config.json
在文件 project.config.json
中,我们看到代码如下:
{
"miniprogramRoot": "./miniprogram",
"pluginRoot": "./plugin",
"compileType": "plugin",
"setting": {
"newFeature": true
},
"appid": ".....",
"projectname": "videoPlayer",
"condition": {}
}
miniprogramRoot:配置小程序的根目录,可以使用小程序来测试编写的插件
pluginRoot:插件相关代码所在的根目录
compileType:项目的编译类型,必须配置为
plugin
,在上传代码的时候才会以插件的方式上传到腾讯服务器。
在 plugin/plugin.json
文件中,代码如下:
{
"publicComponents": {
"hgPlayer": "components/player/player"
},
"main": "index.js"
}
publicComponents:配置的是插件可以给使用的小程序提供哪些组件,一个插件可以定义很多个组件,组件和组件之间相互引用,但是小程序只能使用在publicComponents里配置的组件。
main:定义入口文件,在入口文件
index.js
中定义小程序可以使用插件的那些接口。
在 plugin/index.js
文件中,代码如下:
var data = require('./api/data.js') module.exports = {
getData: data.getData,
setData: data.setData
}
在 plugin/index.js
定义了对外抛出接口为 getData
和 setData
,小程序在使用这个插件的时候,只能使用到插件提供的这两个接口,插件的其他接口(或方法)小程序无法使用。
做好以上配置后,就可以开始在 plugin/components
编写组件代码了,例如我写了我的播放器组件,代码如下:
player.js:
Component({
data: {
myData:[]
}
})
player.wxml:
<view class="section tc">
<video id="myVideo" src="..." enable-danmu danmu-btn controls>
</video>
</view>
值得注意的是:
编写组件是调用 Component() 定义组件代码,和App() 、Page()一样的道理。
在组件能能够调用的微信API受限,比如说不能调用
wx.login()
获取用户信息,具体限制在:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/plugin/api-limit.html
代码编写完毕后,注意在 plugin/plugin.json
文件配置:
{
"publicComponents": {
"hgPlayer": "components/player/player"
},
"main": "index.js"
}
表示使用该插件的小程序,可以使用 hgPlayer 这个组件,组件hgPlayer对应的代码是 "components/player/player"
配置好后,我就可以上传插件代码到腾讯服务器,进入微信小程序开发者后台提交审核,腾讯审核通过后,第三方小程序就可以使用我们编写的这个插件了。
如何使用第三方插件
使用第三方插件之前,需要进入微信小程序开发者后台,在第三方服务里添加插件:
填写第三方插件的AppId,点击添加按钮,对方账号的 小程序插件 > 申请管理
会出现你的申请,如下图:
需要第三方同意你的申请后,你就可以开始使用第三方插件了。
使用第三方插件的时候,需要在 我们自己的小程序的 app.json
做如下配置:
{
"pages": [
"pages/index/index"
],
"plugins": {
"myPlugin": {
"version": "dev",
"provider": "填写申请通过的插件AppId"
},
"plugin1": {
"version": "dev",
"provider": "填写申请通过的插件AppId"
},
"plugin2": {
"version": "dev",
"provider": "填写申请通过的插件AppId"
}
...
}
}
plugins: 配置的要使用的第三方插件列表。
插件列表配置好后,由于每个插件可能会有多个组件,所以需要我们在每个页面定义要使用到的组件,例如,在 index.js
中要使用 hgPlayer
这个组件,需要在 index.json
配置如下:
{
"usingComponents": {
"player": "plugin://myPlugin/hgPlayer"
}
}
"player": "plugin://myPlugin/hgPlayer"
的含义是:要本页面使用插件 myPlugin 的组件 hgPlayer,同时在本页面的别名为 :player 。
配置好 index.json
后,就可以在 index.wxml
直接使用了,例如:
<view class="xxxx">
<player />
</view>
微信小程序插件 - 开发教程的更多相关文章
- Django微信小程序后台开发教程
本文链接:https://blog.csdn.net/qq_43467898/article/details/83187698Django微信小程序后台开发教程1 申请小程序,创建hello worl ...
- 微信小程序-云开发实战教程
微信小程序-云开发实战教程 云函数,云存储,云数据库,云调用 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/gettin ...
- 【推荐】开源项目minapp-重新定义微信小程序的开发
minapp 重新定义微信小程序的开发 官网:https://qiu8310.github.io/minapp/ 作者:Mora minapp 重新定义微信小程序的开发 使用 用 npm 安装命令行工 ...
- 微信小程序快速开发上手
微信小程序快速开发上手 介绍: 从实战开发角度,完整系统地介绍了小程序的开发环境.小程序的结构.小程序的组件与小程序的API,并提供了多个开发实例帮助读者快速掌握小程序的开发技能,并能自己动手开发出小 ...
- 微信小程序从零开始开发步骤(六)4种页面跳转的方法
用法:用于页面跳转,相当于html里面的<a></a>标签. API教程:https://mp.weixin.qq.com/debug/wxadoc/dev/component ...
- 微信小程序从零开始开发步骤(五)轮播图
上一章完成页面自定义分享,这一章来说说轮播图,最常见的一个轮播图,中间带小圆点,自动轮播. Swiper是滑动特效插件,面向手机.平板电脑等移动终端.能实现触屏焦点图.触屏Tab切换.触屏多图切换等常 ...
- 微信小程序从零开始开发步骤(一)搭建开发环境
从零到有写一个小程序系列专题,很早以前就想写来分享,但由于项目一直在进展,没有过多的时间研究技术,现在可以继续分享了. 1:注册 用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,网址: ...
- 微信小程序从零开始开发步骤(一)
从零到有写一个小程序系列专题,很早以前就想写来分享,但由于项目一直在进展,没有过多的时间研究技术,现在可以继续分享了.1:注册用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,点击 ht ...
- BeautyWe.js 一套专注于微信小程序的开发范式
摘要: 小程序框架... 作者:JerryC 原文:BeautyWe.js 一套专注于微信小程序的开发范式 Fundebug经授权转载,版权归原作者所有. 官网:beautywejs.com Repo ...
随机推荐
- spring AOP 之一:spring AOP功能介绍
一.AOP简介 AOP:是一种面向切面的编程范式,是一种编程思想,旨在通过分离横切关注点,提高模块化,可以跨越对象关注点.Aop的典型应用即spring的事务机制,日志记录.利用AOP可以对业务逻辑的 ...
- Hive - ORC 文件存储格式【转】
一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache ...
- OpenStack单节点制作镜像
1.创建快照 已修改后的时刻为记录,进行制作镜像,选择要制作镜像的虚拟机,点击创建快照,在所弹出的对话框中输入所创建的镜像名称 生成了一个镜像,类型为Snapshot 2.保存镜像 查看镜像列表 [r ...
- Service Worker初体验
http://web.jobbole.com/84792/ http://imweb.io/topic/56592b8a823633e31839fc01
- Java 问题集
1.命令行编译.java文件,找不到或者无法加载主类,需要配置完整的PATH,CLASSPATH环境变量,CLASSPATH最前面是 点+分号 PATH=%JAVA_HOME%\binCLASSPAT ...
- WAV和PCM的关系和区别
什么是WAV和PCM? WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范.所有的WAV都有一个文件头,这个文件头音频 ...
- CRM4.0 上传附件大小限制
问题背景: 上传附件大小默认为 5M 可以通过以下设置修改其大小 : "设置"--〉“管理”--〉“系统设置”--〉“电子邮件”--〉“设置附件文件的大小限制”
- javascript-table出现滚动条表格自动对齐
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用Mongo dump 将数据导入到hive
概述:使用dump 方式将mongo数据导出,上传到hdfs,然后在hive中建立外部表. 1. 使用mongodump 将集合导出 mongodump --host=localhost:27 ...
- JQuery字符串的操作
一.String对象属性 1.length属性: length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些 ...