是什么?
概念
援引官方对产品的定义:
我们提供了一种新的开放能力,让开发者可以快速地开发一个
小程序
。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
AppID
在公众平台
设置
-开发者设置
中,查看到微信小程序的 AppID ,它和服务号或订阅号的 AppID是不相同的 。
框架
小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发
具有
原生APP体验的服务。框架的核心是一个响应
的数据绑定
系统
环境
微信小程序运行在三端:iOS、Android和 用于调试的开发者工具
- 在
iOS
上小程序的javascript代码是运行在JavaScriptCore中 - 在
Android
上小程序的javascript代码是通过X5内核来解析 - 在
开发工具
上小程序的javascript代码是运行在nw.js(chrome内核)中 - 由于框架并非运行在浏览器中,所以JavaScript在web中一些能力都无法使用,如document,window 等。
个人理解:微信小程序是一种运行在“阉割版”的浏览器环境中以B/S构架提供数据收集与展示的脚本程序。
有什么?
组件
框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。基础组件分为以下八大类:
- 视图容器
- 基础内容
- 表单
- 操作反馈
- 导航
- 多媒体
- 地图
- 画布
资源
- 基于微信小程序轻快的特点,微信拟定了小程序界面设计指南和建议。旨在微信生态体系内,建立友好、高效、一致的用户体验,同时最大程度适应和支持不同需求。
- WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。
能干什么?
网络
上传下载
将本地资源上传到开发者服务器
WebSocket
一种在单个TCP连接上进行全双工通讯的协议,能够轻松构建低延迟的客户端。
媒体
从本地相册选择图片或使用相机拍照、预览图片和获取图片信息
录音
开始和停止录音,另外当录音超过1分钟时自动结束录音。
音频播放控制
- 开始播放语音,同时只允许一个语音文件正在播放,如果前一个语音文件还没播放完,将中断前一个语音播放。
- 暂停正在播放的语音、结束播放语音和重新开始播放语音
音乐播放控制
- 获取音乐播放状态、暂停和停止播放音乐,控制音乐播放进度
- 播放音乐,同时只能有一首音乐正在播放。
文件
- 保存到本地、删除本地存储的文件,获取文件列表及文件信息
- 新开页面打开文档,支持格式:
doc, xls, ppt, pdf, docx, xlsx, pptx
视频
- 拍摄视频或从手机相册中选视频,返回视频的临时文件路径。
- 拍摄视频最长拍摄时间,单位秒。最长支持60秒
- 可以使用前置或者后置摄像头,默认为前后都有
- 文件的临时路径,在小程序本次启动期间可以正常使用,如需持久保存,需在主动上面的文件接口将视频保存到本地,在小程序下次启动时才能访问得到。
数据
- 每个微信小程序都可以有自己的本地缓存,可以通过接口对本地缓存进行设置、获取和清理。
- 本地缓存最大为10MB。
- localStorage是永久存储,不建议将关键信息全部存在localStorage,以防用户换设备的情况
位置
- 获取当前的地理位置、速度(单位m/s)
- 打开地图选择位置,使用微信内置地图查看位置
设备
- 获取网络类型(2g,3g,4g,wifi)
- 获取系统信息(手机型号、微信版本号等)
- 监听重力感应数据,频率:5次/秒
- 监听罗盘数据,频率:5次/秒
- 拨打电话
界面
- 显示消息提示框、隐藏消息提示框、显示模态弹窗和显示操作菜单
- 动态设置当前页面的标题、在当前页面显示导航条加载动画和隐藏导航条加载动画
- 保留当前页面,跳转到应用内的某个页面;关闭当前页面,跳转到应用内的某个页面;关闭当前页面,返回上一页面或多级页面
- 创建一个动画实例,对动画的控制有旋转、缩放、偏移、倾斜和矩形变形等。
- 绘图上下文context对象,使用H5 标签来绘制图表和动画。
- 其他的一些界面控制,例如收起键盘、停止当前页面下拉刷新等。
开放接口
- 登录,使用微信账号登录
- 用户信息,需要先登录,能够获取到的信息有:昵称、头像、性别和所在省市
- 微信支付,发起微信支付
- 模板消息,需要在小程序
模板消息
页面申请并通过审核;点击查看详情仅能跳转下发模板的该帐号的各个页面;下发条件说明:一是支付,二是提交表单。