第一章
小程序简介
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫二维码或者搜索一下关键词即可打开应用。微信小程序体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。
小程序特征
1.无须安装 小程序内嵌于微信程序之中,用户在使用过程中无须下载安装应用
2.触手可及 用户通过扫描二维码等形式直接进入小程序,实现线下场景与线上应用及时联通。
3.用完即走 用户在线下场景中,当有相关需求时,可以直接进入小程序,使用服务功能后便可以直接退出,实现用完即走。
4.无需卸载 用户在使用完小程序后可以直接关闭小程序,无须卸载
小程序应用场景的特点
通常应用于本身的业务逻辑并不复杂的情况,还有使用的频度低。
开发者工具界面功能介绍
1.工具栏
在工具栏中可以实现多种功能,例如账号的切换,模拟区、编辑区、调试区的显示/隐
藏,小程序的编译、预览,切换后台,清理缓存等.
2.模拟区
在模拟区中选择模拟手机的类型、显示比例、网络类型后,模拟器中会显示小程序的运
行效果。
3.目录文件区
目录文件区用来显示当前项目的目录结构,单击左上角的“+”按钮可以进行目录和文件的创建,右键单击目录文件区中的文件或目录可以进行“硬盘打开”“重命名”“删除”等相关操作。
4.编辑区
编辑区用来实现对代码的编辑操作,编辑区中支持对,wxml、.wxss、.js及,json文件的
操作,使用组合键能提高代码的编辑效率。常用的组合键如表1-1所示。
5.调试区
调试区的功能是帮助开发者进行代码调试及排查有问题的区域。小程序系统为开发者提供了9个调试功能模块,分别是Console、Sources、Network、Security、Storage、AppDala.Wxml、Sensor 和Trace。最右边的扩展菜单项“”是定制与控制开发工具按钮
Console 面板
Console 面板是调试小程序的控制面板,当代码执行出现错误时,错误信息将显示在Console 面板中,便于开发者排查错误,如图1-25所示。另外,在小程序中,开发者可以通过console.log 语句将信息输出到Console面板中。此外,开发者可以在Console面板直接输入代码并调试。
Sources面板
题Sources 面板是源文件调试信息页,用于显示当前项目的脚本文件,如图1-26所示.调试区左侧显示的是源文件的目录结构,中间显示的是选中文件的源代码,右侧显示的是调试相关按钮。Sources 面板中显示的代码是经过小程序框架编译过的脚本文件,开发者的代码会被包含在define 函数中。对于Page代码,在文件尾部通过require函数主动调用。
Network 面板
Network面板是网络调试信息页,用于观察和显示网络请求request和socket等网络相关的详细信息
Security 面板
Security 面板是安全认证信息页,开发者可以通过该面板调试当前网页的安全和认证等问题。如果设置安全论证,则会显示“The security of this page is unknown.”
Storage 面板
Storage 面板是数据存储信息页,开发者可以使用wx.setStorage或者wx.setStorageSync 将数据存储到本地存储,存储在本地存储中的变量及值可以在Storage 面板中显示
AppData 面板
ApData 面板是实时数据信息页,用于显示项目中被激活的所有页面的数据情况。开发者在这里不仅可以查看数据的使用情况,还可以更改数据。编辑器会实时地将数据的变更情况反映到前端界面
Wxml面板
Wxml 面板是布局信息页,主要用于调试Wxml组件和相关CSS样式,显示Wxml转化后的界面。Wxml面板调试区的左侧部分是Wxml代码,右侧部分是该选择器的CSS样式
Sensor 面板
Sensor 面板是重力传感器信息页,开发者可以在这里选择模拟地理位置来模拟移动设备表现,用于调试重力感应API
Trace面板
Trace面板是路由追踪信息页,开发者在这里可以追踪连接到电脑中的安卓设备的路由信息
扩展菜单项
最右边的扩展菜单项“:”主要包括开发工具的一些定制与设置,开发者可以在这里设置相关信息
第二章
小程序的基本目录
pages文件夹:为页面文件夹,里面包含所有页面,每一个页面都有一个小文件夹
utils文件夹:工具包
app.js:逻辑文件,在编译时app.js文件会和其他页面的逻辑文件打包成一个JavaScript文件。
app.json:配置文件,用于配置小程序全局设置
app.wxss:样式文件,用于设置页面样式
小程序的开发框架:![](https://img-blog.csdnimg.cn/direct/085275d925e743719d173d6e14eb20c9.png)
视图层:
MINA框架的视图层由WXML与WXSS编写,由组件来进行展示。对于微信小程序而言,视图层就是所有.wxml文件与.wxss文件的集合:wxss文件用于描述页面的样式;wxml文件用于描述页面的样式。
逻辑层:
逻辑层用于处理事务逻辑。对于微信小程序而言,逻辑层就是所有.js脚本文件的集合。微信小程序在逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。
数据层:
数据层在逻辑上包括页面临时数据或缓存、文件储存(本地存储)和网络存储与调用。
配置文件
全局配置文件
小程序的配置文件按其作用范围可以分为全局配置文件(app.json)和页面配置文件(*.json)。
小程序的全局配置保存在全局配置文件(app.json)中,使用全局配置文件来配置页面文件(pages)的路径、设置窗口(window)表现、设定网络请求API的超时时间值(netwoekTimeout)以及配置多个切换页(tabBar)等。
各全局配置的相关描述:
pages配置项
pages配置项接受一个数组,用来指定小程序由哪些页面组成,数组的每一项都是字符串,代表对应页面的“路径”+“文件名”。pages配置项是必填项。
window配置项
window配置项负责设置小程序状态栏、导航栏、标题、窗口背景色等系统样式。
window配置项及其描述:
tabBar配置项
当需要在程序顶部或底部设置菜单栏时,可以通过配置tabBar配置项来实现。
tabBar配置项及其描述:
tabBar中list选项:
netwoekTimeout配置项
小程序中各种网络请求API的超时时间值只能通过netwoekTimeout配置项进行统一设置,不能在API中单独设置。
netwoekTimeout配置项属性
项目逻辑文件
项目逻辑文件app.js中可以通过App()函数注册小程序生命周期函数、全局属性和全局方法,已注册的小程序实例可以在其他页面逻辑文件中通过getApp()获取。
App()函数用于注册小程序,参数为Object,用于指定小程序的生命周期函数、用户自定义属性和方法
项目逻辑文件配置项:
页面逻辑文件
页面逻辑文件的主要功能有:设置初始数据;定义当前页面的生命周期函数;定义事件处理函数等。
页面逻辑文件配置项:
第三章
盒子模型
微信小程序的视图层由WXML和WXSS组成。其中,WXSS(Weixin Style Sheets)是基
于CSS拓展的样式语言,用于描述WXML的组成样式,决定WXML的组件如何显示。盒子模型就是我们在页面设计中经常用到的一种思维模型。在CSS中,一个独立的盒子模型由内(content)、内边距(padding)、边框(border)和外边距(margin)4个部分组成
盒子模型结构图:
盒子模型元素图:
块级元素和行内元素
块级元素的特点:
(1)一个块级元素占一行。
(2)块级元素的默认高度由内容决定,除非自定义高度。
(3)块级元素的默认宽度是父级元素的内容区宽度,除非自定义宽度。
( 4)块级元素的宽度、高度、外边距及内边距都可以自定义设置。
(5)块级元素可以容纳块级元素和行内元素。
行内元素:
行内元素,不必从新一行开始,通常会与前后的其他行内元素显示在同一行中,它们不占有独立的区域,仅靠自身内容支撑结构,一般不可以设置大小,常用于控制页面中文本的样式。将一个元素的display 属性设置为inline后,该元素即被设置为行内元素。
行内元素的特点:
(1) 行内元素不能被设置高度和宽度,其高度和宽度由内容决定.
(2)行内元素内不能放置块级元素,只级容纳文本或其他行内元素。
(3)同一块内,行内元素和其他行内元素显示在同一行。
行内块元素:
当元素的display 属性被设置为inline-block时,元素被设置为行内块元素。行内块元素可以被设置高度、宽度、内边距和外边距。
元素浮动:
元素浮动就是指设置了浮动属性的元素会脱离标准文档流的控制,移动到其父元素中指定位置的过程。在css中,通过float属性来定义浮动
元素定位:
浮动布局虽然灵活,但无法对元素的位置进行精确的控制。在CSS中,通过position属
性可以实现对页面元素的精确定位。
static——默认值,该元素按照标准流进行布局;
relative——相对定位,相对于它在原文档流的位置进行定位,它后面的盒子仍以标准流
方式对待它;
absolute一绝对定位,相对于其上一个已经定位的父元素进行定位,绝对定位的盒子从标准流中脱离,它对其后的兄弟盒子的定位没有影响;
fixed——固定定位,相对于浏览器窗口进行定位。
flex布局
flex布局是万维网联盟(World Wide Web Consortium,W3C)在2009年提出的一种新布局方案,该布局可以简单快速地完成各种可以伸缩的设计,以便很好地支持响应式布局flex是flexible box的缩写,意为弹性盒子模型,可以简便、完整、响应式地实现各种页面布局。
flex布局主要由容器和项目组成,采用fcx布局的元素称为fex容器(fex container),flex布局的所有直接子元素自动成为容器的成员,称为fex项目(flex item)。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
设置display 属性可以将一个元素指定为fex布局,设置fex-direction属性可以指定主
轴方向。主轴既可以是水平方向,也可以是垂直方向。
flex布局模型图:
容器属性:![](https://img-blog.csdnimg.cn/direct/41a0305504264d098c180ea19e399bc0.png)
display 用来指定元素是否为flex布局,语法格式为:
.box{display:flex linline-flex;}
其中,flex——块级flex布局,该元素变为弹性盒子;
inline -flex——行内fex布局,行内容器符合行内元素的特征,同时在容器内又符合flex布局规范。
设置了flex布局之后,子元素的float、clear 和vertical-align属性将失效。
flex -direction
flex -direction 用于设置主轴的方向,即项目排列的方向,语法格式为:
.box{ flex-direction:row lrow -reverse Icolumn Icolumn -reverse;/}
其中,row
-主轴为水平方向,起点在左端,当元素设置为fex布局时,主轴默认为row;
row -reverse
column-
一主轴为水平方向,起点在右端;主轴为垂直方向,起点在顶端;
column -reverse
-主轴为垂直方向,起点在底端。
元素在不同主轴方向下的显示效果:![](https://img-blog.csdnimg.cn/direct/fd2fc31edd014da7b999bf71918cf033.png)
flex-wrap
flex-wrap 用来指定当项目在一根轴线的排列位置不够时,项目是否换行,其语法格式如下.
.box{flex-wrap:nowrap lwrap lwrap -reverse;}
其中,nowrap——不换行,默认值;wrap——换行,第一行在上方;
wrap -reverse——换行,第一行在下方。
当设置换行时,还需要设置align-item属性来配合自动换行,但align-item的值不能为“ stretch"。
flex-warp不同值的显示效果:![](https://img-blog.csdnimg.cn/direct/68804826127542f5ad0b79d6b3c63bea.png)
flex -flow
flex-flow 是flex-direction和flex-wrap的简写形式,默认值为row nowrap。语法格式如下:
.box{flex-flow: <flex-direction>//<flex -wrap >;}
justify-content
justify-content用于定义项目在主轴上的对齐方式。
justify-content——与主轴方向有关,默认主轴水平对齐,方向从左到右;
flex-start——左对齐,默认值;
flex-end——右对齐;
center——居中;
space -between——两端对齐,项目之间的间隔都相等;
space-around——每个项目两侧的间隔相等。
justify-content不同值的显示效果:
align - items
align-items 用于指定项目在交叉轴上的对齐方式,语法格式如下:
.box/align-items:flex-start /flex -end lcenter lbaseline Istretch;)
其中,align=items—一与交叉轴方向有关,默认交叉由上到下;
flex-start——交叉轴起点对齐;flex-end-一交叉轴终点对齐;center——-交叉轴中线对齐;
baseline——项目根据它们第一行文字的基线对齐;
stretch——如果项目未设置高度或设置为ao,项目将在交叉轴方向拉伸填充容器,此
为默认值。
align-content
align-content用来定义项目有多根轴线(出现换行后)只有一根轴线,该属性不起作用。
space-between
-与交叉轴两端对齐,轴线之间的间隔平均分布;
space -around——每根轴线两侧的间隔都相等,轴线之间的间隔比轴线与边框问隔大一倍。
其余各属性值的含义与align-items属性的含义相同。
align-content不同值的显示效果:
项目属性:![](https://img-blog.csdnimg.cn/direct/56e16b5577cc4176b3850fe258c28b39.png)
1、order
order 属性定义项目的排列顺序,数值越小,排列越靠前。默认值为零。
2、flex-grow
flex-grow定义项目的放大比例,默认值为零,既不放大。
3、flex-shrink
flex-shink 用来定义项目的缩小比例,默认值为,如果空间不是。
4、flex-basis
flex-basis属性用来定义伸缩项目的基准值,剩余的空间将按比例进行缩放,它的默认值为auto(即项目的本来大小)。
5、flex
flex属性是flex-grow、flex-shrink 和flex-basis 的简写,其默认值分别为0、1、auto。
6、align-self
align-self属性用来指定单独的伸缩项目在交叉轴上的对齐方式。该属性会重写默认的对齐方式。
在该属性值中,除了auto以外,其余属性值和容器align-items的属性值完全一致。
第四章
组件的定义及属性
组件是页面视图层(wxml)的基本组成单元,组件组合可以构建功能强大的页面结构。小程序框架为开发者提供了视图容器,基础内容,表单,导航,多媒体,地图,画布,开放能力等8类(30多个)基础组件。
每一个组件都由一对标签组成,有开始标签和结束标签,内容放置在开始标签和结束标签之间,内容也可以是组件。组件的语法格式如下:
<标签名 属性名=”属性值”>内容…</标签名>
组件通过属性来进一步细化。不同的组件可以有不同的属性,但它们也有一些共用属性,如id、class、style、hidden、data-*、bind */catch *等
1.id 组件的唯一表示,保持整个页面唯一,不常用
2. class 组件的样式类,对应 WXSS 中定义的样式
3. style 组件的内联样式,可以动态设置内联样式
4. hidden 组件是否显示,所有组件默认显示
5. data-*自定义属性,组件触发事件时,会发送给事件处理函数。事件处理函数可
以通过传人参数对象的 currentTarget,dataset 方式来获取自定义属性的值
6. bind*/catch* 组件的事件,绑定逻辑层相关事件处理函数
容器视图组件
容器视图组件是能容纳其他的组件,是构建小程序页面布局的基础组件,主要包括view, scroll-view和swiper组件。
view
view组件是块级组件,没有特殊功能,主要用于布局展示,相当于HTML中的div,是布局中最基本的用户界面组件,通过设置view的CSS属性可以实现各种复杂的布局。
view组件的特有属性表![](https://img-blog.csdnimg.cn/direct/fd16d3fe720543319b776f5febc40736.png)
![](https://img-blog.csdnimg.cn/direct/7f2c21e9d8ca4b62971302ecc7adfab6.png)
scrol-view
通过设置scroll-view组件的相关属性可以实现滚动视图的功能
scrol-view组件属性图:![](https://img-blog.csdnimg.cn/direct/794b8e8ce3024c6c96b7337e20ede064.png)
【注意】
(1)在使用竖向滚动时,如果需要给 scroll-view 组件设置一个固定高度,可以通过
WXSS设置height来完成。
(2)请勿在scroll-view 组件中使用textarea、map、canvas、video组件。
(3)scroll -into-view 属性的优先级高于scroll-topo
(4)由于在使用scroll-view 组件时会阻止页面回弹,所以在scroll-view组件液动时无
法触发onPullDownRefresh。
(5)如果要实现页面下拉刷新,请使用页面的液动,而不是设置scroll-view组件。这
样做,能通过单击顶部状态栏回到页面顶部。
swiper
swiper 组件可以实现轮播图、图片预览、滑动页面等效果。
个完整的swiper组件由<swiper/>和<swiper-item/>两个标签组成,它们不能单独使用。<swiper/>中只能放置个或多个<swiper-item/>,若放置其他组件则会被删除;<swiper-item/>内部可以放置任何组件,默认宽高自动设置为100%。
swiper组件属性表:![](https://img-blog.csdnimg.cn/direct/67a49520f7a14e4d811b84c48aa3e278.png)
基础内容组件
基础内容组件包括icon,text和progress,主要用于在视图页面中展示图标,文本和进度条等信息。
icon
icon 组件即图标组件,通常用于表示一种状态,如success、info、warn、waiting、cancel等。
icon组件属性表:![](https://img-blog.csdnimg.cn/direct/72b14501fb2449189e8743cb06f314e3.png)
text
text组件用于展示内容,类似HTML中的<span >,text组件中的内容支持长按选中,支持转义字符“\”,属于行内元素。
text组件属性表:
progress
progress组件用于显示进度状态,如资源加载、用户资料完成度、媒体资源播放进度等。progress 组件属于块级元素
progress组件属性表:![](https://img-blog.csdnimg.cn/direct/f2075826538342bd93b5bdb70d77a972.png)
表单组件
表单组件的主要功能是收集用户信息,并将这些信息传递给后台服务器,实现小程序与用户之间的沟通。表单组件不仅可以放置在<form/>标签中使用,还可以作为单独组件和其他组件混合使用。
button
button 组件用来实现用户和应用之间的交互,同时按钮的颜色起引导作用。一般来说在一个程序中一个按钮至少有3种状态:默认点击(default)、建议点击(primary)、谨慎点击(wam)。在构建项目时,应在合适的场景使用合适的按钮,当<button>被<form/>创裹时,可以通过设置form-type 属性来触发表单对应的事件。
button组件属性表:![](https://img-blog.csdnimg.cn/direct/a00348c7a9484a51a7d606fb15ba00c0.png)
radio
单选框用来从一组选项中选取一个选项。在小程序中,单选框由<radio-group/>(单项选择器)和<radio/>(单选项目)两个组件组合而成,一个包含多个<radio/>的<radio—group/>表示一组单选项,在同一组单选项中<radio/>是互斥的,当一个按钮被选中后,之前选中的按钮就变为非选。
radio-group及radio属性表:![](https://img-blog.csdnimg.cn/direct/931f3dc5ed9441f583e07fe1f5b2cd17.png)
checkbox
复选框用于从一组选项中选取多个选项,小程序中复选框由<checkbox-group/>(多项选择器)和<checkbox/>(多选项目)两个组件
组合而成。一个<checkbox-group/>表示一组选项,可以在一组选项中选中多个选项。
checkbox-group及checkbox组件属性表:![](https://img-blog.csdnimg.cn/direct/8e3fc1e80fcb4159aa5ef1acb6619e5a.png)
swich
swich组件的作用类似开关选择器
swich组件属性表:![](https://img-blog.csdnimg.cn/direct/d15e69506129463e93cb595820271ed9.png)
slider
slider组件为滑动选择器,可以通过滑动来设置相应的值
slider组件属性表:![](https://img-blog.csdnimg.cn/direct/8ad99e24b67f4b17a428b64320e3818c.png)
picker
picker 组件为滚动选择器,当用户点击picker组件时,系统从底部弹出选择器供用户选择。picker 组件目前支持5种选择器,分别是:selector(普通选择器)、multiSelector(多列选择器)、time(时间选择器)、date(日期选择器)、region(省市选择器)。
多列选择器:
多列选择器(mode=multiSelector)允许用户从不同列中选择不同的选择项,其选项是二维数组或数组对象。
时间选择器,日期选择器
时间选择器(mode=time)可以用于从提供的时间选项中选择相应的时间
日期选择器(mode=date)可以用于从提供的日期选项中选择相应的日期
picker-view
pick-view组件属性:![](https://img-blog.csdnimg.cn/direct/37682f801332476dbe7c4f8c8c00d39f.png)
input
input组件属性:
textarea
textarea组件属性:![](https://img-blog.csdnimg.cn/direct/fe9b94415cc648c3bfb41b14836e251b.png)
label
label组件为标签组件, 用于提升表单组件的可用性。label 组件支持使用for属性找到对应的id,或者将控件放在该标签下, 当点击label 组件时,就会触发对应的控件。 for 属性的优先级高于内部控件, 内部有多个控件的时候默认触发第一个控件。 目前, label 组件可以绑定的控件有<button/ >、<checkbox/ >、<radio/ >、<switch/ >
form
form 组件为表单组件, 用来实现将组件内的用户输入信息进行提交。 当< form/ > 表单中formType为submit 的<button/ > 组件时, 会将表单组件中的value 值进行提交。
from组件属性:
多媒体组件
多媒体组件包括image(图像),audio(音频),video(视频),camera(相机)组件,使用这些组件,可以让页面更具吸引力。
image
image组件中的mode属性有13种模式,其中缩放模式有4种,裁剪模式有9种。
image组件属性:![](https://img-blog.csdnimg.cn/direct/f35d9632b5a048b88470911024b01862.png)
缩放模式:
scaleToFill不保持纵横比缩放图片,使图片的宽高完全拉伸至填满image元素。
aspectFit保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以将
图片完整地显示出来。
aspectFill保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,在另一个方向将会发生截取。
widthFix宽度不变,高度自动变化,保持原图宽高比不变。
裁剪模式:
top 不缩放图片,只显示图片的顶部区域。
bottom 不缩放图片,只显示图片的底部区域。
center 不缩放图片,只显示图片的中间区域。left不缩放图片,只显示图片的左边区域。
right 不缩放图片,只显示图片的右边区域。
top_left 不缩放图片,只显示图片的左上边区域。top_right不缩放图片,只显示图片的右上边区域。
bottom _left 不缩放图片,只显示图片的左下边区域。
bottom_right 不缩放图片,只显示图片的右下边区域。
audio
video组件属性:
camera
camera组件为系统相机组件,可以实现拍照或录像功能。 在一个页面中,只能有—camera组件。在开发工具中运行时,使用电脑摄像头实现拍照或录像;在手机中运行时,使用手机前后摄像头实现拍照或录像
camera组件属性:![](https://img-blog.csdnimg.cn/direct/39fc58200ea546f7b95ac5ace9cabbe1.png)
map
map组件属性:map组件的markers属性用于在地图上显示标记的位置
map组件markers属性的相关属性:![](https://img-blog.csdnimg.cn/direct/fb68741984364ee79a08049e6c8390e2.png)
map组件polyline属性的相关属性:![](https://img-blog.csdnimg.cn/direct/d809946d1bf64fb688278418d5ec1dcb.png)
canvas
canvas 组件用来绘制图形,相当于一块无色透明的普通图布。canm组件本身并没有绘图能力,仅仅是图形容器,通过绘图API实现绘图功能。在默认情况下,canvas组件的默认宽度为300px,高度为225 px,同一页面中的canvas-id不能重复,否则会出错。
第五章
极速应用的优势
1,开发流程简单,零门槛制作。
2,行业模板多样,种类齐全。
3,丰富的功能组件和强大的后台管理。
极速应用界面介绍
菜单栏
菜单栏中的“风格”选项用于设置小程序页面的风格颜色,“管理”选项用于进入后台管理页面,“帮助”选项用于提示帮助功能,“客服”选项用于进入客服界面,“历史”选项用来恢复前项操作,“预览”选项用在PC端预览制作效果,“保存”选项用于保存已制作的内容,“生成”选项用于实现小程序打包上线设置。
工具栏
工具栏包括“页面管理”“组件库”2个
选项卡,“页面管理”实现添加页面和添加分组以及对某一页面进行改名、收藏、复制、删
除操作。“组件库”有9个基础组件、7个布局组件、18个高级组件和2个其他组件。
编辑区
编辑区是用来制作小程序页面的主要区域,通过拖拽组件实现页面制作,右边的“前进”“后退”选项可以进行恢复操作,“模板”选项可以用来选择模板、“元素”速项可以用来显示页面中的组件及其层次关系,“数据”选项可以用来进行页面数据管理,“模块”选项可以用来选择模块。
属性面板
属性面板用来设置选定组件的属性及样式,包括“组件”和“组件样式”两个选项卡。组件”选项卡用来设置组件内容及点击事件;“组件样式”选项卡用来设置组件的样式,不同组件有不同的样式需要设置。
极速应用组件
极速应用组提供了7个布局组件,9个基本组件,18个高级组件和2个其他组件
布局组件
布局组件用于设计页面布局,主要包括双栏、面板、自由面板、顶部导航、底部导航、分割线和动态分类
双栏组件
双栏组件用来布局整体,它可以把一个区块分为两部分,操作时显示一个分隔的标志,便于操作,预览时则不会出现。双栏组件默认设置每个栏占50%总宽,也可以按实际需要调整比例。双栏里面可以添加基本的组
动态分类,从而达到整体的布局效果。双栏还可以嵌套双栏,即可以在其中的一个栏里嵌入一个双栏,从而将整体分成3部分(若需要将整体分成4部分,就再嵌套一个双栏,依次类推)。
面板组件
面板组件相当于一个大画板,用户可以将很多基本(甚至高级)的组件(如文本组件、图片组件、按钮组件、标题组件、分类组件、音频组件、双栏组件、计数组件等)放进面板组件里一起管理。
自由面板组件
自由面板组件是指放置在该面板内的组件可以自由拖动,调节组件大小。用户既可以向
自由面板内拖入部分组件(包括文本组件、图片组件和按钮组件),也可以拖入任意相关容器组件,用于不规则布局
顶部导航组件
顶部导航组件固定于页面顶部,用于编辑顶部的导航。常用的手机应用在顶部有一条导航,上面写有手机应用App的名称或logo,以及返回键等。
底部导航组件
底部导航组件固定于页面底部,用于编辑底部的导航。
分割线组件
分割线组件被设置于任意组件之间,用于实现分割
动态分类组件
分类组件可以设置不同内容展示在不同类别中,还可以添加、删除分类的个数及进行相应的设置。
基本组件
文本组件
文本组件用于展示文字,设置点击事件
图片组件
图片组件用于再页面中展示图片
按钮组件
按钮组件在页面中用于设置按钮
标题组件
标题组件用于在页面中设置标题
轮播组件
轮播组件用于实现图片的轮播展示
图片列表组件
图片列表组件可以将图片以列表的形式展示,还可以设置图片的名称,标题和点击事件。
图文集组件
图文集组件用于展示图片,标题和简介
视频组件
视频组件用于展示视频
高级组件
高级组件通常需要后台数据,通过设置后台数据来实现数据后台化,让小程序的数据随时更新,及时修改
动态列表组件
动态列表组件是容纳基础组件来展示后台数据的容器,通过添加基础组件来展示对应的后台数据
个人中心组件
个人中心组件显示个人相关信息的组件,包括图像,昵称,我的订单,收货地址,购物车等
动态表单组件
动态表单组件相当于HTML中的<form>标签,是一个容器组件,可以添加子表单组件和基本组件,用来收集用户提交的相关信息给后台数据对象。
评论组件
评论组件提供信息发布或回复信息的组件
计数组件
评论组件提供星系发布或回复信息的组件
注意:
在设置为自动计数后,当用户浏览该页面时,浏览量自动增加1。在关联页面后,如果该页面是动态页,相关计数则属于该动态页对应的项;如果该页面不是动态页,相关计数则属于该页面。如果不关联页面,则相关计数属于该小程序。
地图组件
地图组件用于显示指定地址的地图,常用于实现定位及导航功能
城市定位组件
城市定位组件通常与列表类组件搭配使用,常见搭配有动态列表和商品列表。
悬浮窗组件
悬浮窗组件的固定搭配有:客服、我的订单、购物车、回到顶部。悬浮窗组件通常出现
在个人中心或商品列表页面
其他组件
音频组件
音频组件用于播放音乐(每个页面有一个音频组件即可),手动点击播放按钮后即可实现播放。音频文件可以选择音频库中的音乐,也可以上传本地音频进行更换
动态容器组件
动态容器组件用于动态页面,即所在页面绑定了数据对象。动态容器组件中可以添加多种组件——文本组件、图片组件、按钮组件、标题组件、分类组件、音频组件、双栏组件、计数组件。其中,文本组件和图片组件可以绑定相应的数据对象字段(填充相应动态数据),若有计数组件,则会自动与动态容器关联。
极速应用后台管理
数据管理
数据管理包括数据总览、访客分析和传播数据功能。
数据总览提供小程序总浏览量、昨日/今日访问量、总用户量、总订单数及浏览量曲线图
分享设置
分享设置主要提供可以分享应用的方式
用户管理
用户管理主要用于实现对用户进行添加、分组、群发消息、储值金充值、赠送会员卡等功能
应用数据
应用数据是后台管理的主要内容,前端组件(动态列表、动态表单)的数据都是通过在应用数据中的数据对象来管理的,类似通过数据库存放和管理数据。
轮播管理
轮播管理是前端软播组件的后台数据管理器,通过软播管理来设置前端软播组件展示的图片内容。
分类管理
分类管理适用于电商、到店、应用数据。分类管理可以通过选择动态分类组件样式来实现在顶部分类或侧边栏分类以展示应用数据、商品数据等效果。动态分类的二级有图模式只适用于电商。
商品管理
商品管理是后台管理的主要内容,前端商品列表组件的数据来源于后台商品管理。商品管理可以管理商品列表、积分商品、位置管理、支付方式、订单管理、拼团订单管理、订单统计、账单明细、运费管理和评价管理功能。
经营管理
经营管理主要包括子账号管理、手机端客户关系管理和短信接收管理,便于管理者管理小程序的运营。
营销工具
营销工具是小程序营销推广的有力工具,主要有会员卡、优惠券、积分、储值、推广、秒杀、集集乐、拼团活动、大转盘、砸金蛋、刮刮乐等。这些营销工具都需要事前在后台合理设置后,才能在活动中发挥更大的作用。
多商家管理
多商家管理是即速应用为有众多商家的商城开设的管理功能,方便管理者统计每家店铺的订单及进行收益分析。
第六章
网络API
网络API 可以帮助开发者实现网络URL访问调用、文件的上传和下载、网络套接字的
使用等功能处理。微信开发团队提供了10个网络API接口。
wx. request(Object)接口用于发起HTTPS请求。
wx.uploadFile(Object)接口用于将本地资源上传到后台服务器。
wx.downloadFile(Object)接口 用于下载文件资源到本地。
wx.connectSocket(Object)接口用于创建一个WebSocket 连接。
Wx.sendSocketMessage(Object)接口用于实现通过WebSocket 连接发送数据。
wx closeSocket(Objecl)接口用于关闭 WebSocket 连接。
wx. onSocketOpen(CallBack)接口用于监听WebSocket连接打开事件。
wx. onSocketError(CallBack)接口用于监听WebSockct错误。
wx. onSocketMessage(CallBack)接口用于实现监听WebSocket 接收到服务器的消息
ws. onSocketClose(CallBack)接口用于实现监听WebSocket关闭。
发起网络请求
wx.request(Object)实现向服务器发送请求,获取数据等各种网络交互操作。一个微信小程序同时只能有五个网络请求链接,并且是HTTPS请求。
wx.request(Object)相关参数表
上传文件
wx.uploadFile(Object)接口用于将本地资源上传到开发者服务器,并在客户端发起一个HTTPS POST请求
wx.uploadFile(Object)相关参数表
下载文件
wx.downloadFile(Objecct)接口用于实现从开发者服务器下载文件资源到本地,在客户端直接发起一个HTTP GET请求,返回文件的本地临时路径。
wx.downloadFile(Objecct)相关参数
多媒体API
多媒体API主要包括图片API、录音API、音频播放控制API、音乐播放控制API等,其目的是丰富小程序的页面功能。
图片 API
图片API实现对相机拍照图片或本地相册图片进行处理,主要包括以下4个API接口:
wx.chooselmage(Object)接口用于从本地相册选择图片或使用相机拍照。
previewImage(Object)接口用于预览图片。
wx. getlmagelnfo(Object)接口用于获取图片信息。
wx. savelmageToPhotosAlbum(Object)接口 用于保存图片到系统相册。
选择图片或拍照
wx. chooselmage(Object)接口用于从本地相册选择图片或使用相机拍照。拍照时产生的临时路径在小程序本次启动期间可以正常使用,若要持久保存,则需要调用wx. saveFile保存图片到本地。
wx. chooselmage(Object)相关参数若调用成功,则返回tempFilePaths和tempFiles,tempFilePaths表示图片在本地临时问年间路径列表。tempFiles表示图片的本地文件列表,包括path和size。
预览图片
wx.previewImage(Object)接口主要用于预览图片
wx.previewImage(Object)相关参数
获取图片信息
wx.getImageInfo(Object)接口用于获取图片信息
wx.getImageInfo(Object)相关参数
保存图片到系统相册
wx.saveImageToPhotosAlbum(Object)接口用于保存图片到系统相册,需要得到用户授权scope.writePhotosAlbum。
wx.saveImageToPhotosAlbum(Object)相关参数
录音API
录音API提供了语音录制的功能,主要包括以下两个API接口:
wx.startRecord(Object)接口用于实现开始录音
wx. stopRecord(Object)接口用于实现主动调用停止录音
开始录音
wx.startRecord(Object)接口用于实现开始录音。当主动调用 wx.stopRecord(Object)接口或者录音超过1分钟时,系统自动结束录音,并返回录音文件的临时文件路径。若要持久保存,则需要调用wx.saveFile()接口。
wx.startRecord(Object)相关参数
停止录音
wx.storpRecord(Object)接口用于实现主动调用停止录音
音频播放控制API
音频播放控制API主要用于对语音媒体文件的控制,包括播放、暂停、停止及audio组
件的控制,主要包括以下3个API:
wx.playVoice(Object)接口用于实现开始播放语音
wx.pauseVoice(Object)接口用于实现暂停正在播放的语音。
wx.stopVoice(Object)接口用于结束播放语音
播放语音
wx.playVoice(Object)接口用于开始播放语音,同时只允许一个语音文件播放,如果前
一个语音文件还未播放完,则中断前一个语音文件的播放。
wx.playVoice(Object)相关参数
暂停播放
wx. pauseVoice(Object)用于暂停正在播放的语音。再次调用 wx. playVoice(Object)搭立同一个文件时,会从暂停处开始播放。如果想从头开始播放,则需要先调用wx. stopVie(Object)。
结束播放
WstopVoice(Object)用于结束播放语音。
音乐播放控制API
音乐播放控制API主要用于实现对背景音乐的控制,音乐文件只能是网络流媒体,不能是本地音乐文件。音乐播放控制API主要包括以下8个API:
wx. playBackgroundAudio(Object)接口 用于播放音乐。
wx. getBackgroundAudioPlayerState(Object)接口 用于获取音乐播放状态。
wx. seekBackgroundAudio(Object)接口用于定位音乐播放进度。
wx.pauseBackgroundAudio()接口用于实现暂停播放音乐。
wx.stopBackgroundAudio()接口用于实现停止播放音乐。
wx. onBackgroundAudioPlay(CallBack)接口 用于实现监听音乐播放。
wx. onBackgroundAudioPause( CallBack)接口 用于实现监听音乐暂停。
wx. onBackgroundAudioStop(CallBack)接口 用于实现监听音乐停止。
播放音乐
wx. playBackgroundAudio(Object)用于播放音乐,同一时间只能有一首音乐处于播放状态。
wx. playBackgroundAudio(Object)相关参数
获取音乐播放状态
wx. getBackgroundAudioPlayerState(Object)接口用于获取音乐播放状态。
wx. getBackgroundAudioPlayerState(Object)相关参数
控制音乐播放进度
wx. seekBackgroundAudio(Object)接口用于控制音乐播放进度
wx. seekBackgroundAudio(Object)相关参数
暂停播放音乐
wx. pauseBackgroundAudio()接口用于暂停播放音乐。
停止播放音乐
wx. stopBackgroundAudio()接口用于停止播放音乐。
监听音乐播放
wx. onBackgroundAudioPlay(CallBack)接口用于实现监听音乐播放,通常被 wx.playBack-
groundAudio(Object)方法触发,在CallBack中可改变播放图标。
监听音乐暂停
wx. onBackgroundAudioPause( CallBack)接口用于实现监听音乐暂停,通常被 wx.pause-
BackgroundAudio()方法触发。在CallBack中可以改变播放图标。
监听音乐停止
wx. onBackgroundAudioStop(CallBack)接口用于实现监听音乐停止,通常被音乐自然播放停止或wx. seekBackgroundAudio(Objeet)方法导致播放位置等于音乐总时长时触发。在CallBack中可以改变播放图标。
文件API
从网络上下载或录音的文件都是临时保存的,若要持久保存,需要用到文件API。文件API提供了打开、保存、删除等操作本地文件的能力,主要包括以下5个API接口:
wx.saveFile(Object)接口 用于保存文件到本地。
wx.getSavedFileList(Object)接口 用于获取本地已保存的文件列表。
wx.getSaveFileInfo(Object)接口 用于获取本地文件的文件信息。
wx.removeSaveFile(Object)接口 用于删除本地存储的文件。
wx.openDocument(Object)接口 用于新开页面打开文档,支持格式:doc、xls、ppt、pdf、docx、xlsx、ppts。
保存文件
wx. saveFile(Object)用于保存文件到本地,其相关参数如表所示。
wx. saveFile(Object)相关参数
获取本地文件列表
wx. getSavedFileList(Object)接口用于获取本地已保存的文件列表,如果调用成功,则返回文件的本地路径、文件大小和文件保存时的时间戳(从1970/01/01 08: 00: 00到当前时间的秒数)文件列表。
获取本地文件的文件信息
wx. getSaveFileInfo(Object)接口用于获取本地文件的文件信息,此接口只能用于获取已保存到本地的文件,若需要获取临时文件信息,则使用wx. getFileInfo(Object)接口。
删除本地文件
wx. removeSaveFile(Object)接口用于删除本地存储的文件。
打开文档
wx.openDocument(Objeet)接口用于新开页面打开文档,支持格式doc、xls、PPT、pdf、docx、xlsx、pptx
本地数据及缓存API![](https://img-blog.csdnimg.cn/direct/f01ed3ed988d464fabb3a72edff324e8.png)
小程序提供了以键值对的形式进行本地数据缓存功能,并且是永久存储的,但最大不超过10 MB,其目的是提高加载速度。数据缓存的接口主要有4个:
wx.setStorage(Object)或wx.setStorageSync(key,data)接口 用于设置缓存数据。
wx.getStorage(Object)或wx.getStorageSync(key)接口用于获取缓存数据。
wx. removeStorage(Object)或 wx.removeStorageSync(key)接口 用于删除指定缓在
wx.clearStorage()或wx.clearStorageSync()接口用于清除缓存数据。
其中,带Sync后级的为同步接口,不带Sync后缀的为异步接口。
保存数据
.wx.setStorage(Object)
wx.setStorage(Object)接口将数据存储到本地缓存接口指定的key中,接口执行后会覆盖原来key对应的内容。其参数如表所示:
wx.setStorageSyne(key,data)
wx.setStorageSyne(key,data)是同步接口,其参数只有key和data。
获取数据
wx. getStorage(Object)
wx.getStorage(Object)接口是从本地缓存中异步获取指定 key 对应的内容。其相关参数如图
wx. getStorageSync(key)
wx.getStorageSync(key)从本地缓存中同步获取指定key 对应的内容。其参数只有keya
删除数据
1.wx. removeStorage(Object)
wx. removeStorage(Object)接口用于从本地缓存中异步移除指定 key。其相关参数如图
wx. removeStorageSync(key)
wx. removeStorageSync(key)接口用于从本地缓存中同步删除指定key 对应的内容。其参数只有key。
清空数据
1.wx. clearStorage()
wx.clearStorage()接口用于异步清理本地数据缓存,没有参数。
2.wx. clearStroageSync()
wx.clearStroageSync()接口用于同步清理本地数据缓存。
位置信息
小程序可以通过位置信息API 来获取或显示本地位置信息,小程序支持WGS84和GCj02标准,WGS84 标准为地球坐标系,是国际上通用的坐标系;GCjO2标准是中国国家测绘局制定的地理信息系统的坐标系统,是由WGS84坐标系经加密后的坐标系,又称为火星坐标系。默认为WCS84标准,若要查看位置需要使用GCj02标准。主要包括以下3个API接口:
wx. getLocation(Object)接口用于获取位置信息。
wx.chooseLocation(Object)接口 用于选择位置信息。
wx.openLocation(Object)接口 用于通过地图显示位置。
获取信息位置
wx.getLocation(Object)接口用于获取当前用户的地理位置、速度,需要用户开启定位功能,当用户离开小程序后,无法获取当前的地理位置及速度,当用户点击“显示在聊天顶部”时,可以获取到定位信息。
wx.getLocation(Object)调用成功后,返回的参数如以下表所示
选择位置信息
wx.chooseLocation(Object)接口用于在打开的地图中选择位置,用户选择位置后可返回当前位置的名称、地址、经纬度信息。
wx.chooseLocation(Object)相关参数
wx. chooseLocation(Object)调用成功后,返回的参数如表
显示位置信息
wx. qpenlocation(Object)接口用于在微信内置地图中显示位置信息
wx. qpenlocation(Object)相关参数表
设备相关API
设备相关的接口用于获取设备相关信息,主要包括系统信息、网络状态、拨打电话及扫
码等。主要包括以下5个接口 API:
(1)wx.getSystemInfo(Object)接口、wx.getSystemInfoSync()接口用于获取系统信息。
(2)wx.getNetworkType(Object)接口用于获取网络类型。
(3)wx.onNetworkStatusChange(CallBack)接口用于监测网络状态改变。
(4)wx.makePhoneCall(Object)接口用于拨打电话。
(5)wx.scanCode(Object)接口用于扫描二维码。
获取系统信息
wx.getSystemInfo(Object)接口、wx.getSystemInfoSync()接口分别用于异步和同步获取系
统信息。
wx.getSystemInfo(Object)接口、wx.getSystemInfoSync()接口相关参数表
wx.getSystemInfo(Object)接口、wx.getSystemInfoSync()接口成功返回相关信息表
网络状态
1.获取网络状态
wx. getNetworkType(0bject)用于获取网络类型,其相关参数如表
wx. getNetworkType(0bject)相关参数表如果wx.getNetworkType()接口被成功调用,则返回网络类型包,有wifi、2G、3G 4G、unknown(Android下不常见的网络类型)、none(无网络)。
监听网络状态变化
wx.onNetworkStatusChange(CallBack)接口用于监听网络状态变化,当网络状态变化时,返回当前网络状态类型及是否有网络连接。
拨打电话
wx.makePhoneCall(Object)接口用于实现调用手机拨打电话,其相关参数如下表
扫描二维码
wx.scanCode(Object)接口用于调起客户端扫码界面,扫码成功后返回相应的内容,其相关参数如图
扫描成功后,返回的数据如图
wx.scanCode(Object)成功返回相关信息