第一章
1.认识微信小程序
1.1 小程序简介
微信 (WeCha) 是腾讯公司于2011年1月21日推出的一款为智能终端挑供即时通信(Inslant Messaging、 IM) 服务的应用程序。
微信之父张小龙曾经解释:小程序是一种不需要下我安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫(二维码)或者搜一下(关键词)即可打开应用。微信小程序体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。有了微信小程序、应用将无处不在,随时可用,且无须安装与卸钱。
小程序、订阅号、服务号、企业微信(企业号)展于微信公众平台的四大生态体系,它们面向不同的用户群体,应用于不同的方向和用途。小程序是微信的一种新的开发能力,具有出色的用户使用体验,可以在微信内被便捷地获取和传播;订阅号为媒体和个人提供一种新的信息传播方式,构建信息发布者与浏览者之间更好的沟通与管理模式;服务号为企业和组织提供更强大的服务与用户管理能力,帮助企业快速实现全新的公众号服务平台;企业微信(公众号)为企业提供专业的通信工具、丰富的办公应用与应用程序接口(Application Programming Interface, API),助力企业高效沟通与办公
.1.2 小程序的特征
小程序嵌人微信之中,不需要下载安装外部应用,用户通过扫描二维码和搜索相关功能
的关键词即可使用,具备无须安装、触手可及、用完即走、无须卸载的特性。小程序可以被理解为“镶嵌在微信的超级 App”
1. 无须安装
小程序内嵌于微信程序之中,用户在使用过程中无须在应用商店下载安装外部应用。
2. 触手可及
用户通过扫描二维码等形式直接进入小程序,实现线下场景与线上应用的即时联通。
3.用完即走
用户在线下场景中,当有相关需求时,可以直接接人小程序,使用服务功能后便可以对
其不理会,实现用完即走。
4. 无须卸载
用户在访问小程序后可以直接关闭小程序,无须卸载。
3.微信小程序开发者工具界面功能介绍
我们把微信小程序开发者工具界面划分五大区城:工具栏、模拟区.
目录文件区、编辑区和调试区。
1.工具栏
在工具栏中可以实现多种功能,例如账号的切换,模拟区、编辩区、训试区的显示/低
藏,小程序的编译、预览,切换后台,消理级存等。
2.模拟区
在模拟区中选择模拟手机的类型、显示比例、网络类型后,模拟器中会显示小程序的运
行效果。
3.目录文件区
目录文件区用来显示当前项目的目录结构,单击左上角的“+”按钮可以进行目录和文件
的创建,右键单击目录文件区中的文件或目录可以进行“硬無打开”“重命名"“刪除”等相关操作。
4、编辑区
编辑区用来实现对代码的编辑操作,编辑区中支持对,wxml、.wxss、.js 及.json 文件的操作,使用组合键能提高代码的编辑效率。
微信小程序开发工具常用组合键:
Ctl +S :保存文件 ; Ctl+ [, Ctrl+]: 代码行缩进; Cirl + shift + [, Ctrl + Shift +]:折叠打开代码块; Ctrl + Shift + Entel:在当前行上方插入一行; Ctrl + Shift + F:全局搜索; Shift + Alt + F:代码格式化; Alt + Up, Alt + Down:上下移动一行; Shift + Alt + Up (Down):向上(下) 复制一行; Ctl + Home:移动到文件开头; Ctrl + End:移动到文件结尾; Shift + Home:选择从行首到光标处; Shift + End:选择从光标处到行尾; Ctl +I:选中当前行; Ctrl +D:选中匹配; Ctrl + Shift + L:选择所有匹配; Crl + U:光标回退。
5. 调试区
调试区的功能是帮助开发者进行代码调试及排查有问题的区城。小程序系统为开发者提供了9个调试功能模块,分别是Console、Sources、Network、Security、Storage、AppData、Wxml、Sensor 和 Trace。最右边的扩展菜单项“:”是定制与控制开发工具按钮。
5.1) Console 而板
Coole面板是训试小租序的控制面板,当代码执行出现错误时,错误信息将显示在
Console 而板中,便于开发者排查错误,另外,在小程序中,开发者可以通过 console. log语句将信息输出到 Console 面板中。此外,开发者可以在 Console 面板直接输入代码并调试。
5.2) Sources 面板
Sures 面板是源文件调试信息页,用于显示当前项目的脚本文件,周试区左侧显示的是源文件的目录结构,中间显示的是选中文件的源代码,右侧显示的是调式相关按钮。Sources面板中显示的代码是经过小程序框架编译过的脚本文件,开发者的代码会被包含在 dfine 限数中。对于 Page 代码,在文件尾部通过 require 函数主动调用。
5.3) Nelwork 面板
M.画板是网络洲试信息页,用于观察和显示网络请求 equest 和 socket 等网络相关的详细信息。
5.4) Security 面板
Security 面板是安全认证信息页,开发者可以通过该面板调试当前网页的安全和认证等问题。如果设置安全论证,则会显示 “ The security of this page is unknown.”。
5.5) Storage 面板
Storage 面板是数据存储信息页,开发者可以使用 wx.setStorage 或者 wx. setStorageSync 将数据存储到本地存储,存储在本地存储中的变量及值可以在 Storage 面板中显示。
5.6) AppData 面板
AppData 面板是实时数据信息页,用于显示项目中被激活的所有页面的数据情况。开发者在这里不仅可以查看数据的使用情况,还可以更改数据。编得器会实时地将数据的变更化况反映到前端界面。
5.7) Wxml 面板
Wxml面板是布局信息页,主要用于调试WXml组件利相关CSS样式,显示 Wxml 转化后的界面。Wxml 面板调试区的左侧部分是Wxml 代码,右侧部分是该选择器的 CSS 样式。
5.8) Sensor 面板
Sensor 面板是重力传感器信息页,开发者可以在这里选择模拟地理位置来模拟移动设备表现,
用于调试重力感应 API。
5.9) Trace 面板
Trace 面板是路由追踪信息页,开发者在这里可以追踪连按到电脑中的安卓(Android)
设备的路由信息。
5.10) 扩展菜单项
最右边的扩展菜单项“:”主要包括开发工具的一些定制与设置,开发者可以在这里设置相关信息。
第二章
app.js: 小程序逻辑文件,主要用来注册小程序全局实例。在编译时,app.js文件会和其他页面的逻辑文件打包成一个JavaScript文件。
app.json:小程序公共设置文件,配置小程序全局设置。app.wxss:小程序主样式表文件,类似HTML的.css文件。在主样式表文件中设置的样式在其他页面文件中同样有效。该文将在项目中不是必需的。
1.2 页面文件
小理序通称是由我个页面组成的,每个页而包含4个文件,同一页面的这4个文件必须
具有相同的路经与文件名。当小程序被启动或小程序内的页面进行跳转时,小程序会根据
app json 设置的路径找到相对应的资源进行数据绑定。
.js文件 页面逻辑文件,在该文件中编写 Javascript 代码控制页面的逻辑。该文件
在每个小程序的页面中不可缺少。
.wxml文件 页面结构文件,用于设计页面的布局、数据绑定等,类似HTML 页面
中的.hom! 文件。该文件在页面中不可缺少。
.wss 文件 页面样式表文件,用于定义本页面中用到的各类样式表。当页面中有样
式表文件时,文件中的样式规则会层叠覆盖 app. xss 中的样式规则;否则,直接使用
app. wxss 中指定的样式规则。该文件在页面中不可缺少
.json 文件 页面配置文件。该文件在页面中不可缺少。
2小程序的开发框架
小程序 MINA 框架将整个系统划分为视图层和逻辑层。视图层(View) 由框架设计的标
签语言 WXML (WeiXin Markup Languge) 和用于描述 WXML 组件样式的 wxsS (WeiXin Sple Shels) 组成,它们的关系就像 HTML 和 CSS 的关系。逻辑层(App Service)是MINA 框架的服务中心,由微信客户端启用异步线程单独加载运行。页面数据绑定所需的数据、页面交互处理逻辑都在逻辑层中实现。MINA 框架中的逻辑层使用 JavaScript 来编写交互逻辑、网络请求、数据处理,但不能使用 JavaSeript 中的DOM 操作。小程序中的各个页面可以通过逻辑层来实现数据管理、网络通信、应用生命周期管理和页面路由。
MINA 框架为页面组件提供了 bindrap、bindtouchstart等与事件监听相关的属性,并与逻
辑层中的事件处理函数绑定在一起,实现面向逻辑层与用户同步交互数据。MINA 框架还提供了很多方法将逻辑层中的数据与页面进行单向绑定,当逻辑层中的数据变更时,小程序会主动触发对应页面组件的重新数据绑定。
2.1 视图层
MINA 框架的视图层由 WXML 与 WXSS编写,由组件来进行展示。对于微信小程序而言,视图层就是所有,wxnl 文件与.wxss 文件的集合:.wxml 文件用于描述页面的结构;,Wxss 文件用于描述页面的样式。微信小程序在逻辑层将数据进行处理后发送给视图层展现出来,同时接收视图层的事件反纸,视图层以给定的样式展现数据并反俄时间给逻辑层,而数据展现是以组件来进行的
2.2逻辑层
逻辑层用于处理事务逻机。对于微信小程序而育,逻辑层就是所有.js脚本文件的集合。
微信小程序在是辑层将数据进行处理后发送给视图层,同时接受视图层的事件反做。微信小程序开发框架的迎辩层是采用 JavaScript 编写的。在 JavaSeript 的基础上,微信团队做了适当修改、以便提高开发小程序的效率。主要修改包括:
(1)增加app() 和Page() 方法、进行程序和页面的注册。(2) 提供丰富的API、如扫一扫、支付等微信特有的能力。(3)每个页面有独立的作用城,并提供模块化能力。
逻辑层就是通过各个页面的.周本文件来实现的。由于小程序并非运行在浏览器中。
所以 Javascripl在 Wcb 中的一些功能在小程序中无法使用,如 dcument. window等。
开发者开发编写的所有代码最终会被打包成独立的 JavaSeript 文件,并在小程序启动的
时候运行,直到小程序被销毁。
2.3数据层
数据层在逻辑上包括页面临时数据或缓存、文件存储(本地存储)和网络存储与调用。
1.页面临时数据或缓存
在 Page() 中,使用setData 函数将数据从逻辑层发送到视图层,同时改变对应的this. data的值。
setData() 两数的参数接收一个对象,以(key, value)的形式表示将 key 在 his. data 中
对应的值改变成 value。
2. 文件存储(本地存储)使用数据API接口,如下:
I wx. getStorage 获取本地数据缓存。
wx. setStorage
设置本地数据缓存。
wx. clearStorage
清理本地数据缓存。
3.网络存储与调用
上传或下载文件API接口,如下:
wx. request 发起网络请求。
wx. uploadFile 上传文件。
wx. downloadFile 下载文件。
调用URL的API接口,如下:
wx. navigateTo 新窗口打开页面。
wx. redirectTo 原窗口打开页面。
页面结构文件
页面结构文件(WXML) 是框架设计的一套类似 HTML.的标签语言,结合基础组件、事件系统,可以构建出页面的结构,即.wxml 文件。在小程序中,类似 HTML.的标签被称为组件,是页面结构文件的基本组成单元。这些组件有开始(如<view>) 和结束(如</view>)标志,每个组件可以设置不同的属性(如id、class等),组件还可以嵌套。
WXML 还具有数据绑定、条件数据绑定、列表数据绑定、模板、引用页面文件、页面事件等能力。
7.1 数据绑定
小程序在进行页面数据绑定时,框架会将 WXML 文件与逻辑文件中的 data 进行动态绑定,在页面中显示data中的数据。小程序的数据绑定使用 Mustache 语法(11卜) 将变量或运算规则包起来。
1.简单绑定
简单绑定是指使用双大括号(111卜)将变量包起来,在页面中直接作为字符串输出使用简单绑定可以作用于内容、组件属性、控制属性等的输出。
2. 运算
在1111内可以做一些简单的运算(主要有算术运算、逻辑运算、三元运算、字符串运算等),这些运算均应符合JavaSeript 运算规则。
8.页面事件
简单来说,小程序中的事件是用户的一种行为或通信方式。在页面文件中,通过定义事件来完成页面与用户之间的交互,同时通过事件来实现视图层与逻辑层的通信。我们可以将事件绑定到组件上,当达到触发条件时,事件就会执行逻辑层中对应的事件处理函数。
要实现这种机制,需要定义事件函数和调用事件。
定义事件丽数在.is文件中定义事件函数来实现相关功能,当事件响应后就会执行
事件处理代码。
调用事件 调用事件也称为注册事件。调用事件就是告诉小程序要监听哪个组件的什么事件,通常在页面文件中的组件上注册事件。事件的注册(同组件属性),以“key = value”形式出现,key (属性名)以 bind 或 catch 开头,再加上事件类型,如bindtap、catchlongtap。其中,bind 开头的事件绑定不会阻止冒泡事件向上冒泡,catch 开头的事件绑定可以阻止冒泡事件向上冒泡。value (属性值)是在is中定义的处理该事件的函数名称,如click。
在小程序中,事件分为冒泡事件和非冒泡事件两大类型。
冒泡事件 冒泡事件是指某个组件上的事件被触发后,事件会向父级元素传递,父级元素再向其父级元素传递,一直到页面的顶级元素。
非冒泡事件 非胃泡事件是指某个组件上的事件被触发后,该事件不会向父节点传递
第三章
1盒子模型
微信小程序的视图层由 WXML和WXSS组成。其中,wxss (Weixin Style Sheets) 是基
于CSS拓展的样式语言,用于描述 WXML.的组成
·边框(border)
样式,决定 WXML的组件如何显示。wxss 具有csS的大部分特性,因此,本章将重点讲解 CSS 中的布局相关内容。
乐ECmzin)
内边距(padting)
在页面设计中,只有掌握了盒子模型以及盒子
模型的各个属性和应用方法,才能轻松控制页面中
照,
的各个元素。
金子模型就是我们在页面设计中经常用到的一
种思维模型。在 CSS中,一个独立的盒子模型由内容(content)、内边距(padding)、边框(border)和外边距(margin)4个部分组成
width 和 height 内容的宽度和高度。
pading -top、 padding -right、padding - bottom 和 padding - left 上内边距、右内边距、底内边距和左内边距。
border -top、border -right、 border - bottom 和 border -left 上边框、右边框、底边框和左边框。
I margin -top、 margin -right、margin -bottom 和 margin -left 上外边距、右外边距、底外边距和左外边距。
因此,一个盒子实际所占有的宽度(高度)应该由“内容”+“内边距”、+“边框”+“外边距”组成。
2块级元素与行内元素
元素按显示方式分为块级元素、行内元素和行内块元素,它们的显示方式由 display 属性控制。
2.1块级元素
块级元素默认占一行高度,一行内通常只有一个块级元素(浮动后除外),添加新的块
级元素时,会自动换行,块级元素一般作为盒子出现。块级元素的特点如下:
(1) 一个块级元素占一行。
(2)块级元素的默认高度由内容决定,除非自定义高度。
(3)块级元素的默认宽度是父级元素的内容区宽度,除非自定义宽度。
(4) 块级元素的宽度、高度、外边距及内边距都可以自定义设置。
(5) 块级元素可以容纳块级元素和行内元素。
2.2行内元素
行内元素,不必从新一行开始,通常会与前后的其他行内元素显示在同一行中,它们不占有独立的区域,仅靠自身内容支撑结构,一般不可以设置大小,常用于控制页面中文本的样式。将一个元素的display属性设置为inline后,该元素即被设置为行内元素。行内元素的特点如下:
(1)行内元素不能被设置高度和宽度,其高度和宽度由内容决定
(2)行内元素内不能放置块级元素,只能容纳文本或其他行内元素
(3)同一块内,行内元素和其他行内元素显示在同一行
由于浮动元素不再占用原文档流的位置,以此它会对页面中其他元素的排列产生影响在css中,clear属性用于清除浮动元素对其它元素的影响,其基本格式如下:{clear:left|right|both|none}
left——清除左边浮动的影响,right——清除右边浮动的影响,both——同时清除左右两边浮动的影响,none——不清除浮动
元素定位
浮动布局虽然灵活,但无法对元素的位置进行精确的控制。在css中,通过position属性可以实现对页面元素的精确定位。基本格式如下:{position:static|relative|absolute|fixed}
static——默认值,该元素按照标准流进行布局;relative——相对定位,相对于它在原文档流的位置进行定位,它后面的盒子仍以标准流方式对待它;absolute——绝对定位,相对于其上一个已经定位的父元素进行定位,绝对定位的盒子从标准流中脱离,它对其后的兄弟盒子的定位没有影响;fixed——固定定位,相对于浏览器窗口进行定位
display语法格式为:
.box{display:flex|inline-flex;}
flex——块级flex布局,该元素变为弹性盒子;inline-flex——行内flex布局,行内容器符合行内元素的特征,同时在容器内又符合flex布局规范。设置了flex布局之后,子元素的float、clear和vertical-align属性将失效。
flex-direction语法格式为:.box{flex-firection:row|row-reverse|column|column-reversse;}
row——主轴为水平方向,起点在左端,当元素设置为flex布局时,主轴默认为row;row-reverse——主轴方向为水平方向,起点在右端;column——主轴为垂直方向,起点在顶端;column-reverse——主轴为垂直方向,起点在低端。
flex-flow是flex-direction和flex-wrap的简写形式,默认值为row nowrap。语法格式为:.box{flex-flow;<flex-direction>||<flex-wrap>;}
justify-content语法格式为:.box{justify-content:flex-start|flex-end|center|space-between|space-around;}
justify-content——与主轴方向有关,默认主轴水平对齐,方向从左到右;flex-start——左对齐,默认值;flex-end——右对齐;center——居中;space-between——两端对齐,项目之间的间隔都相等;space-around——每个项目两侧的间隔相等。
align-items语法格式如下:.box{align-items:flex-start|flex-end|center|baseline|stretch;}
align-items——与交叉轴方向有关,默认交叉由上到下;flex-start——交叉轴起点对齐;flex-end——交叉轴终点对齐;baseline——项目根据它们第一行文字的基线对齐;stretch——如果项目未设置高度或设置为auto,项目将在交叉轴方向拉伸填充容器,此为默认值。
第四章
1.组件的定义及属性
组件的页面视图的基本组成单元,组件组合可以构建功能强大的页面结构。小程序框架为开发者提供了容器视图,基本内容,表单,导航,多媒体,地图,画布,开发功能等8类基础组件。
每一个
2.容器视图组件
容器视图组件是能容纳其他组件的组件,是构建小程序页面布局的基础组件,主要包括view,scroll-view和swiper组件。
2.1.view
view组件是块级组件,没有特殊功能,主要用于布局展示,相当于HTML中的div,是布局中最基本的用户界面组件,通过设置view的css属性可以实现各种复杂的布局。
2.3 swiper
swiper组件可以实现轮播图、图片预览、滑动页面等效果。一个完整的swiper组件由<swiper/>和<swiper-item/>两个标签组成,它们不能单独使用。<swiper/>中只能放置一个或多<swiperitem/>,若放置其他组件则会被删除;<swiper-item/>内部可以放置任何组件,默认宽高自动设置为100%。
4.表单组件
表单组件的主要功能是收集用户信息,并将这些消息传递给后台服务器,实现小程序与用户之间的沟通。表单组件不仅可以放置在<form/>标签中使用,还可以作为单独组件和其他组件混合使用。
4.1button
button 组件用来实现用户和应用之间的交互,同时按钮的颜色起引导作用。一般来说,在一个程序中一个按钮至少有3种状态:默认点击(default)、建议点击(primary)、谨慎点击(wam)。在构建项目时,应在合适的场景使用合适的按钮,当<button>被<form/>包裹时,可以通过设置form - type属性来触发表单对应的事件。
4.2radio
单选框用来从一组选项中选取一个选项。在小程序中,单选框由<radio -group/>(单项选择器)和<radio/>(单选项目)两个组件组合而成,一个包含多个<radio/>的< radio -group/>表示一组单选项,在同一组单选项中<radio/>是互斥的,当一个按钮被选中后,之前选中的按钮就变为非选。
4.3checkbox
复选框用于从一组选项中选取多个选项,小程序中复选框由<checkbox - group/>(多项选择器)和<checkbox/>(多选项目)两个组件组合而成。一个<checkbox -group/>表示一组选项,可以在一组选项中选中多个选项。
4.6picker
picker组件为滚动选择器,当用户
点击 picker组件时,系统从底部弹出选择器供用户选择。picker组件目前支持5种选择器,分别是:selector(普通选择器)、multiSelector (多列选择器)、time (时间选择器)、date (日期选择器)、region (省市选择器)。
4.10label
label组件为标签组件,用于提升表单组件的可用性。label组件支持使用for 属性找到对应的id,或者将控件放在该标签下,当点击label 组件时,就会触发对应的控件。for属性的优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。
目前,label 组件可以绑定的控件有<button/><checkbox/>、<radio/>、<switch/>。
4.11form
fom组件为表单组件,用来实现将组件内的用户输入信息进行提交。当<fom/>表单中formType 图4-20 label 组件运行效果示意
为submit的<button/>组件时,会将表单组件中的value 值进行提交。
5.多媒体组件
多媒体组件包括image(图像),audio(音频),video(视频),camera(相机)组件,使用这些组件,可以让页面更具有吸引力。
1.image
image组件为图像组件,与HTML中的<img/>类似,系统默认image组件的宽度为300px,高度为2250px。
image组件中的 mode 属性有13种模式,其中缩放模式有4种,裁剪模式有9种。
1.缩放模式
scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满image元素。
aspectFit保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以将图片完整地显示出来。
aspectFill保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,在另一个方向将会发生截取。
widthFix宽度不变,高度自动变化,保持原图宽高比不变。
2.裁剪模式
top 不缩放图片,只显示图片的顶部区域。
bottom 不缩放图片,只显示图片的底部区域。
center不缩放图片,只显示图片的中间区域。 left 不缩放图片,只显示图片的左边区域。 right 不缩放图片,只显示图片的右边区域。
top_left不缩放图片,只显示图片的左上边区域。 top_right不缩放图片,只显示图片的右上边区域。 bottom_left不缩放图片,只显示图片的左下边区域。 bottom_right不缩放图片,只显示图片的右下边区域。
6.其他组件
在小程序中,除了前面介绍的组件以外,map组件和canvas组件比较常用。
1.map
map组件用于在页面中显示地图路径,常用于LBS(基于位置服务)或路径指引,功能相对百度地图,高德地图较简单,目前具备绘制图标,路线,半径等能力,不能在croll-view,swiper,picker-view,movable-view组件中使用。
2.canvas
canvas组件用来绘制图形,相当于一块无色透明的普通图布。canvas组件本身并没有绘制图形能力,仅仅是图形容器,通过绘图API实现绘图功能。在默认情况下,canvas组件的默认宽度为300px,高度为225px,同一页面的canvas-id不能重复,否则出错。
实现绘图的三步骤:
(1)创建一个canvas绘图上下文。
var context=wx.createCanvasContext('myCanvas')
(2)使用canvas绘图上下文进行绘图描述。
context.setFillStyle('green')
context.fillRect(10,10,200,100)
(3)画图。
context.draw()
第五章
1 即速应用概述
1.1 即速应用的优势
即速应用是深圳市咫尺网络科技开发有限公司开发的一款同时兼具微信小程序和支付宝小程序快速开发能力的工具,用户只需简单拖拽可视化组件,就可以实现在线小程序开发。据不完全统计,在微信小程序正式发布的1年内,在即速应用上打包代码并成功上线的微信小程序已经超过5万个。
即速应用的功能特点主要体现在以下几个方面:
1.开发流程简单,零门槛制作
使用即速应用来开发微信小程序的过程非常简单,无须储备相关代码知识,没有开发经验的人也可以轻松上手。
(1)登录即速应用的官方网站(www.jisuapp.cn),进入制作界面,从众多行业模板中选择一个合适的模板。
(2)在模板的基础上进行简单编辑和个性化制作。
(3)制作完成后,将代码一键打包并下载。
(4)将代码上传至微信开发者工具。
(5)上传成功后,等待审核通过即可。
2.行业模板多样,种类齐全
即速应用为广大开发者提供了非常齐全的行业解决方案。目前,即速应用已经上线60多个小程序行业模板,涉及餐饮(单店版、多店版)、婚庆、旅游、运动、美容、房地产、家居、医药、母婴、摄影、社区、酒店、KTV、汽车、资讯等多个行业。
这些小程序行业模板可以有效地帮助企业拓宽资源整合渠道,降低运营成本,提高管理效率。
3.丰富的功能组件和强大的管理后台
即速应用的功能组件和管理后台非常实用,可以根据实际情况解决商家的不同需求。例如,到店体系可以实现电子点餐、排队预约和线上快速结算;社区体系可以实现评论留言和话题管理;多商家系统可以实现分店统一管理、多门店统一运营;营销工具可以实现会员卡、优惠券的设置等营销方式……
目前,即速应用有4个版本,分别为基础版、高级版、尊享版和旗舰版。基础版为免费使用的版本,适合制作个人小程序,其他版本根据功能不同可以满足不同企业的需求。
即速应用的应用范围主要包括以下类型:
(1)资讯类:新闻、媒体。
(2)电商类:网购(服装、电器、读书、母婴……)。
(3)外卖类:餐饮及零售。
(4)到店类:餐饮及酒吧。
(5)预约类:酒店、KTV、家教、家政,其他服务行业。
1.2 即速应用界面介绍
登录即速应用官网,单击“注册”按钮,在如图所示的页面填写相应信息,即可完成注册。完成注册后,即可登录账号,使用即速应用。
工具栏包括“页面管理”“组件库”2个选项卡,“页面管理”实现添加页面和添加分组以及对某一页面进行改名、收藏、复制、除操作。“组件库”有9个基础组件、7个布局组件、18个高级组件和2个其他组件
2 即速应用组件
即速应用提供了大量的组件供用户快速布局页面,包括7个布局组件、9个基本组件18个高级组件和2个其他组件
2.1 布局组件
布局组件用于设计页面布局,主要包括双栏、面板自由面板、顶部导航、底部导航、分割线和动态分类
.2.4 其他组件
其他组件包括音频组件和动态容器组件
1.音频组件音频组件用于播放音乐(每个页面有一个音频组件即可),手动点击播放按钮后即可实现播放。音频文件可以选择音频库中的音乐,也可以上传本地音频进行更换,音频组件的性面板如图 所示
2.动态容器组件
动态容器组件用于动态页面,即所在页面绑定了数据对象。动态容器组件中可以添加多种组件--文本组件、图片组件、按钮组件、标题组件、分类组件、音频组件、双栏组件计数组件。其中,文本组件和图片组件可以绑定相应的数据对象字段(填充相应动态数据),若有计数组件,则会自动与动态容器关联。
3 即速应用后台管理
即速应用后台提供了非常强大的后台管理,开发者在后台进行修改操作就可以让数据即时更新,开发者还可以通过后台来查看小程序数据管理、用户管理、商品管理、营销工具多商家管理等功能
1. 数据管理
数据管理包括数据总览、访客分析和传播数据功能
2. 分享设置
分享设置主要提供可以分享应用的方式
3. 用户管理
用户管理主要用于实现对用户进行添加、分组、群发消息、储值金充值、赠送会员卡等功能
4. 应用数据
应用数据是后台管理的主要内容,前端组件 (动态列表、动态表单) 的数据都是通过在应用数据中的数据对象来管理的,类似通过数据库存放和管理数据
5. 轮播管理
轮播管理是前端软播组件的后台数据管理器,通过软播管理来设置前端软播组件展示的图片内容
6. 分类管理
分类管理适用于电商、到店、应用数据。分类管理可以通过选择动态分类组件样式来实现在顶部分类或侧边栏分类以展示应用数据、商品数据等效果。动态分类的二级有图模式只适用于电商
7. 商品管理
商品管理是后台管理的主要内容,前端商品列表组件的数据来源于后台商品管理。商品管理可以管理商品列表、积分商品、位置管理、支付方式、订单管理、拼团订单管理、订单统计、账单明细、运费管理和评价管理功能
8. 经营管理
经营管理主要包括子账号管理、手机端客户关系管理和短信接收管理,便于管理着管理小程序的运营
9. 营销工具
营销工具是小程序营销推广的有力工具,主要有会员卡、优惠券、积分、值、推广秒杀、集集乐、拼团活动、大转盘、砸金蛋、刮刮乐等。这些营销工具都需要事前在后台合理设置后,才能在活动中发挥更大的作用
10. 多商家管理
多商家管理是即速应用为有众多商家的商城(如“华东商城”“义乌商城”等)开设的管理功能,方便管理者统计每家店铺的订单及进行收益分析
4 打包上传
4.1 打包
进入急速应用后台管理,选择左边选项“分享设置”按钮,单击”微信小程序“ 选项
选择“代码包下载”选项,单击“确定”按钮
通过“微信公众平台一小程序一设置一开发设置”获取AppD和AppSecre,在“服务器配置”中填写相关信息,选择相应分类,单击“打包”按钮,即可成功打包
单击“下载”按钮,即可下载该小程序代码包
4.2 上传
打开微信Web开发者工具,新建项目,并填写相关内容。其中,项目目录为下载包解压后的目录
单击“确定”按钮,打开小程序代码,编译无误后,填写该项目的版本号,单击“上传”按钮即可实现该小程序代码上传
上传成功后,打开微信公众平台的“开发管理”界面,就可以看到该小程序的版本信息
待审核通过后,即可在“微信”一“发现”一“小程序”中搜索到该小程序
第六章
1.网络API
微信小程序处理的数据通常从后台服务器获取,再将处理过的结果保存到后台服务器,这就要求微信小程序要有与后台进行交互的能力。微信原生API接口或第三方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(Object)接口用于关闭WebSocket连接。
■ wx.onSocketOpen(CallBack)接口 用于监听WebSocket连接打开事件。
■ wx.onSocketError(CallBack)接口 用于监听WebSocket错误。
■ wx.onSocketMessage(CallBack)接口 用于实现监听WebSocket接收到服务器的消息事件。
■ wx.onSocketClose(CallBack)接口 用于实现监听WebSocket关闭。
1.1发起网络请求
wx. request(Object)实现向服务器发送请求、获取数据等各种网络交互操作,其相关参数如表6-1所示。一个微信小程序同时只能有5个网络请求连接,并且是HTTPS请求。
1.3下载文件
wx. downloadFile(Object)接口用于实现从开发者服务器下载文件资源到本地,在客户端直接发起一个HTTPGET请求,返回文件的本地临时路径。
2 多媒体API
多媒体API主要包括图片API、录音API、音频播放控制API、音乐播放控制API等,其目的是丰富小程序的页面功能。
1 图片API
图片API实现对相机拍照图片或本地相册图片进行处理,主要包括以下4个API接口:
■ wx.chooseImage(Object)接口用于从本地相册选择图片或使用相机拍照。
■ wx.previewImage(Object)接口 用于预览图片。
■ wx.getImageInfo(Object)接口用于获取图片信息。
■ wx.saveImageToPhotosAlbum(Object)接口 用于保存图片到系统相册。
1.选择图片或拍照
wx. chooseImage(Object)接口用于从本地相册选择图片或使用相机拍照。拍照时产生的临时路径在小程序本次启动期间可以正常使用,若要持久保存,则需要调用wx. saveFile保存图片到本地。若调用成功,则返回tempFilePaths和tempFiles,tempFilePaths表示图片在本地临时文件路径列表。tempFiles表示图片的本地文件列表,包括path和size
2 录音API
录音API提供了语音录制的功能,主要包括以下两个API接口:
■ wx.startRecord(Object)接口用于实现开始录音。
■ wx.stopRecord(Object)接口
用于实现主动调用停止录音。
1.开始录音
wx. startRecord(Object)接口用于实现开始录音。当主动调用wx.stopRecord(Object)接口或者录音超过1分钟时,系统自动结束录音,并返回录音文件的临时文件路径。若要持久保存,则需要调用wx. saveFile()接口。
3 音频播放控制API
音频播放控制API主要用于对语音媒体文件的控制,包括播放、暂停、停止及audio组件的控制,主要包括以下3个API:
■ wx.playVoice(Object)接口 用于实现开始播放语音。
■ wx.pauseVoice(Object)接口用于实现暂停正在播放的语音。
■ wx.stopVoice(Object)接口 用于结束播放语音。
1.播放语音
wx. playVoice(Object)接口用于开始播放语音,同时只允许一个语音文件播放,如果前一个语音文件还未播放完,则中断前一个语音文件的播放。
2.暂停播放
wx. pauseVoice(Object)用于暂停正在播放的语音。再次调用wx.playVoice(Object)播放同一个文件时,会从暂停处开始播放。如果想从头开始播放,则需要先调用wx.stopVoice(Object)。
4 音乐播放控制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)接口 用于实现监听音乐停止。
1.播放音乐
wx. playBackgroundAudio(Object)用于播放音乐,同一时间只能有一首音乐处于播放状态。
6.监听音乐播放
wx. onBackgroundAudioPlay(CallBack)接口用于实现监听音乐播放,通常被wx. playBack-groundAudio(Object)方法触发,在CallBack中可改变播放图标。
7.监听音乐暂停
wx. onBackgroundAudioPause(CallBack)接口用于实现监听音乐暂停,通常被wx. pause-BackgroundAudio()方法触发。在CallBack中可以改变播放图标。
8.监听音乐停止
wx. onBackgroundAudioStop(CallBack)接口用于实现监听音乐停止,通常被音乐自然播放停止或wx.seekBackgroundAudio(Object)方法导致播放位置等于音乐总时长时触发。在CallBack中可以改变播放图标。
9.案例展示
在此,以小程序music为案例来展示音乐API的使用。该小程序的4个页面文件分别为music. wxml、music.wxss、music. json和music. cojs。
3 文件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。
2.获取本地文件列表
wx. getSavedFileList(Object)接口用于获取本地已保存的文件列表,如果调用成功,则返回文件的本地路径、文件大小和文件保存时的时间戳(从1970/01/01 08: 00: 00到当前时间的秒数)文件列表。
3.获取本地文件的文件信息
wx. getSaveFileInfo(Object)接口用于获取本地文件的文件信息,此接口只能用于获取已保存到本地的文件,若需要获取临时文件信息,则使用wx. getFileInfo(Object)接口。
4.删除本地文件
wx. removeSaveFile(Object)接口用于删除本地存储的文件
4.本地数据及缓存API
小程序提供了以键值对的形式进行本地数据缓存功能,并且是永久存储的,但最大不超过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后缀的为异步接口。
1.wx.setStorage(Object)
wx.setStorage(Object)接口将数据存储到本地缓存接口指定的key中,接口执行后会覆盖原来key对应的内容。
2. wx. setStorageSync(key, data)
wx. setStorageSync(key, data)是同步接口,其参数只有key和data。
2.获取数据
1. wx. getStorage(Object)
wx. getStorage(Object)接口是从本地缓存中异步获取指定key对应的内容。
2. wx. getStorageSync(key)
wx. getStorageSync(key)从本地缓存中同步获取指定key对应的内容。其参数只有key。
3.数据删除
1. wx. removeStorage(Object)
wx. removeStorage(Object)接口用于从本地缓存中异步移除指定key。
2. wx. removeStorageSync(key)
wx. removeStorageSync(key)接口用于从本地缓存中同步删除指定key对应的内容。其参数只有key。
4.清空数据
1. wx. clearStorage()
wx. clearStorage()接口用于异步清理本地数据缓存,没有参数。
2.wx.clearStroageSync()
wx.clearStroageSync()接口用于同步清理本地数据缓存。
5.位置信息API
小程序可以通过位置信息API来获取或显示本地位置信息,小程序支持WGS84和GCj02标准,WGS84标准为地球坐标系,是国际上通用的坐标系;GCj02标准是中国国家测绘局制定的地理信息系统的坐标系统,是由WGS84坐标系经加密后的坐标系,又称为火星坐标系。默认为WGS84标准,若要查看位置需要使用GCj02标准。主要包括以下3个API接口:
■ wx.getLocation(Object)接口用于获取位置信息。
■ wx.chooseLocation(Object)接口 用于选择位置信息。
■ wx.openLocation(Object)接口用于通过地图显示位置。
1.获取位置信息
wx. getLocation(Object)接口用于获取当前用户的地理位置、速度,需要用户开启定位功能,当用户离开小程序后,无法获取当前的
2.选择位置信息
wx. chooseLocation(Object)接口用于在打开的地图中选择位置,用户选择位置后可返回当前位置的名称、地址、经纬度信息。
地理位置及速度,当用户点击“显示在聊天顶部”时,可以获取到定位信息。
6.设备相关API
设备相关的接口用于获取设备相关信息,主要包括系统信息、网络状态、拨打电话及扫码等。主要包括以下5个接口API:
■ wx.getSystemInfo(Object)接口、wx.getSystemInfoSync()接口 用于获取系统信息。
■ wx.getNetworkType(Object)接口 用于获取网络类型。
■ wx.onNetworkStatusChange(CallBack)接口 用于监测网络状态改变。
■ wx.makePhoneCall(Object)接口 用于拨打电话。
■ wx.scanCode(Object)接口 用于扫描二维码
1.获取系统信息
wx. getSystemInfo(Object)接口、wx. getSystemInfoSync()接口分别用于异步和同步获取系统信息。