小程序,大未来:微信小程序开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-19 18:03:38

点击下载

作者:吕云翔

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

小程序,大未来:微信小程序开发

小程序,大未来:微信小程序开发试读:

前言

小程序的时代已经来临,你做好迎接的准备了吗?

随着移动端软件应用的日渐发展,各种软件和应用层出不穷,用户的需求也无时无刻地在增加,发生着各种各样的变化。作为当代智能终端最流行的即时通信软件,微信已经占领了这一领域的绝大多数市场。除即时通信功能外,微信还提供了公众号、朋友圈、消息推送等功能。

2016年9月22日凌晨,微信官方正式推出了小程序内测功能。2017年1月9日,微信小程序正式上线。

近年来,随着互联网的飞速发展,从百度到各种浏览器(如 UC 浏览器、360浏览器等)都推出了轻应用服务,各种Web服务及轻应用逐渐走进人们的视野。微信,这一占有巨大市场份额的通信软件,也随即推出了自己的轻应用服务——微信小程序。无须安装和卸载,无处不在的应用,均让微信小程序这一新的应用形态在上线伊始就显示出其突出的优点和不可估量的市场前景。另外,微信平台的原生支持,为优质服务提供了一个开放的平台,在这样一个新的应用形态下,用户和开发者都可以方便和自由地使用和开发。对用户来说,“所见即所得”,对开发者来说,“低入门成本”,因此,其充满独特的魅力。同时,腾讯云提供的小程序在云端服务器的技术方案和微信小程序平台自身提供的数量巨大的程序API,也在小程序的开发和推广过程中起了巨大的推进作用。通过微信小程序,针对不同的应用场景,可以实现各种各样的功能,完美实现软件服务,尤其是O2O服务。

在互联网时代,把握信息时代潮流,熟练掌握流行软件应用的开发技术,是当代软件工程师、软件设计师的重要素质。微信小程序的推出,向我们提出了挑战,同时也提供了巨大的机遇。入门并熟练掌握微信小程序的开发,将会对软件开发能力起到重要的提升作用,增强个人的竞争力,同时在学习和工作中收获更多的机会,走在时代的前沿。

小程序的出现,意味着一种新型软件生态环境的出现。它是一种新型的应用生态,无须下载和安装即可直接使用。微信以自己广泛的用户和巨大的线上流量,率先开启了这一领域的激烈竞争。为了帮助广大对小程序感兴趣的初学者和相关开发人员快速入门、快速学习微信小程序的开发,本书从小程序的基础知识开始分析,并从小程序的申请、创建,到小程序的内容编写、官方接口的使用等,进行一步步的详细讲解,并给出有一定代表性的小程序实例,保证每个对小程序不了解、零基础的开发人员都能够快速获得独立开发小程序的能力。当然,如果读者有一些网页、软件的开发基础,学习起来将会事半功倍。希望在本书的帮助下,读者能够真正迎来属于自己的“小程序时代”。

作为微信小程序的入门和开发教程,本书在以下几个方面具有突出特色。

定位明确:本书针对国内软件开发行业、软件相关专业的软件工程师,旨在让有一定编程基础和软件开发经验的读者学习微信小程序的开发,获得针对不同小程序应用需求的分析能力及独立开发微信小程序的编程能力。

结构合理、讲解详细:本书结构安排合理,从微信小程序的基本概念开始,对小程序的整体软件架构进行详细的讲解和具有针对性的分析,并根据具体的开发过程和实例进行详尽的分析,由浅入深,降低了阅读的难度,使读者在学习小程序开发时不会感到枯燥无味,在阅读的过程中不断学习,巩固自身知识。

理论与实践相结合:本书结合实际案例,让读者亲身实践,参与到小程序的开发中,同时加以理论知识的补充和详解,使读者真正理解微信小程序是什么,并在学习微信小程序开发过程的同时不断加深理解,真正做到熟练掌握知识,提高个人设计和开发的综合能力。

实例丰富:针对不同的实际应用场景,本书给出了4个小程序应用实例,既保证不同情景下各种应用的需求能够得到充分满足,也使读者的编程能力得到充分锻炼,给读者更多学习和参考的机会。

全书分为三部分,共14章。

第一部分,从第1章到第3章,从零开始介绍微信小程序的基础知识,包括微信小程序的定义、小程序生态的特点、小程序与其他App的区别等。

第二部分,从第4章到第10章,进入小程序的开发环节。第4章从介绍注册小程序开始,手把手教会读者如何申请注册小程序,并对小程序开发者工具进行分析,做好开发前的准备工作。第5章通过对一个简单的Hello World小程序的分析,让读者了解小程序的目录结构。并学会预览和审核小程序。第6章对小程序的结构框架进行分析,对全局配置文件进行详解。第7章和第8章对小程序平台的组件和官方API进行详解,每个实例都给出了对应的源代码,帮助读者学习。第9章和第10章则介绍小程序与服务器的交互,包括服务器的购买、配置,以及小程序安全性方面的问题。

第三部分,从第11章到第14章,给出了4个小程序开发实例,这4个实例涉及不同方面、不同领域的小程序应用,可以帮助读者掌握更多的小程序开发技巧,学会自主学习和自主开发。

本书内容从理论到实践,由浅入深,尽量使每位希望开发微信小程序应用的读者都可以轻松地阅读本书。

目前,小程序还在不断地更新当中,更多的API和组件将会被开放出来。随着时间的推移,本书介绍的知识和内容在更新的版本中也会有所更改,在内容出现错误和偏差时,希望读者能够自行查询官方文档,了解更多有关小程序的最新消息。

本书包含配套资源,读者可登录华信教育资源网(www.hxedu.com.cn)注册后免费下载。

本书由吕云翔、田旺、朱子彧、郭致远编著,曾洪立、吕彼佳、姜彦华进行了本书的素材整理及配套资源制作等工作。

由于时间短暂,小程序更新频繁,再加上编者水平有限,书中内容难免有疏漏和错误之处,敬请读者加以指正(作者联系邮箱:yunxianglu@hotmail.com)。编者第一部分小程序是什么第1章小程序的定义1.1 走进小程序

小程序,是腾讯公司推出的基于微信的一种全新形态的应用。2016年1月11日,在广州举行的微信公开课Pro版活动中,微信掌门人张小龙首次在演讲中透露 “应用号”的存在,并表示这是一种新形态的公众号,用户关注这样的一个公众号,就像安装了一个App一样。2016年9月22日,“应用号”悄然更名为“小程序”,腾讯公司开始陆续发放内测邀请,在内测邀请函(如图1-1所示)中,微信官方写道:“我们提供了一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。”也是在当天,张小龙在自己的微信朋友圈(如图1-2所示)中写道:“什么是小程序:小程序是一种不需要下载安装即可使用的应用,它实现了应用‘触手可及’的梦想,用户扫一扫或者搜一下即可打开应用。也体现了‘用完即走’的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无须安装卸载。”2016年11月3日,小程序开始公测。在公测期间,所有的企业、政府、媒体和其他社会机构都可以登记注册小程序。此时,小程序开发完成后,可以提交审核,但是不能发布让大家公开使用。最终,微信小程序在2017年1月9日正式推出,引起了用户的高度关注。有意思的是,这一天正是苹果公司发布第一代iPhone的十周年纪念日。iPhone的发布和iOS生态圈的建设改变了整个互联网,小程序选择在这一天发布,也被视为吹响了向传统应用挑战的号角。图1-1 微信小程序内测邀请函图1-2 张小龙朋友圈

因此,小程序可以视为一种新形态的应用。相比于已有的嵌入在微信浏览器中的HTML5网页应用,它拥有更高的系统权限,能访问更多的手机硬件信息,同时也拥有更加贴近于系统原生应用的交互和操作体验;相比于系统原生应用,它不占用手机的空间,无须安装和卸载,实现了应用“触手可及”和“用完即走”的梦想。1.2 小程序与微信公众号

小程序和微信公众号都是微信生态圈(如图1-3所示)的重要组成部分。从定义上来说,小程序和微信公众号属于并列层级,它们互不干扰,可以说是两套几乎完全不同的体系,但是鉴于微信强大的用户数量,微信公众号和小程序之间又有一定互相转化的空间。它们之间的区别与联系可以从获取方式,功能特性和入口三个方面进行比较。图1-3 微信公众平台体系1.2.1 获取方式

和微信公众号不同的是,小程序主要关注在特定场合解决特定需求。为了尽可能地减少对用户的打扰,小程序没有“关注人数”这样的指标,没有“粉丝”这样的概念,也不能向用户发送任何推送消息,可以查看的只有页面访问量。功能理念不同,使小程序在获取时和微信公众号有所不同。一般来说,获取小程序和微信公众号,主要有以下几种途径。

1.通过搜索获取

直接搜索小程序和微信公众号的名称是比较直观的方式之一。微信允许用户对微信公众号进行模糊搜索,即只需输入部分名称,即可查询到所有名称中包含用户查询内容的全部微信公众号。小程序上线之初,只支持部分模糊查询,也就是说,如果没有在搜索时完整地输入一个小程序确切的全名,用户将无法获取任何小程序的查询结果。但是在部分情况下,某些特定的小程序也能仅通过查询名称中的部分内容而显示出来。例如,输入关键字“小程序”并不能查询到名为“小程序示例”的微信官方小程序,但是输入“京东”,却能查询到所有名称带有关键字“京东”的小程序,如图1-4所示。这样严格的关键字限定,一方面,是为了达到“触手可及”的目标,因为小程序设想的应用场景是,在用户不需要的时候就不会去搜索使用小程序,而在用户线下真正需要时,只需扫描身边的二维码即可打开相应小程序,无须主动搜索;但另一方面,在线下小程序二维码还没有大面积推广时,这样的限定为众多抱着尝鲜的想法去获取小程序的用户带来了不便,并不利于在第一时间吸引用户使用小程序。

随着微信的更新,在微信6.5.4版本中,小程序已支持模糊搜索,直接搜索任意关键字,即可查询到相关的小程序,并且小程序在搜索列表中还会更加优先地显示。图1-4 小程序模糊搜索

2.通过二维码获取

微信公众号和小程序都可以通过扫描二维码获取。二维码识别有两种途径,一种是通过“扫一扫”功能,直接扫码,另一种是长按二维码图片,在弹出的菜单中选择“识别图中二维码”。

微信公众号的二维码用这两种方式均可识别,操作后即可进入相关公众号的简介页面;小程序的二维码扫码规则经过了几次修改,在小程序推出之初,只能通过点开“扫一扫”,使用相机扫描二维码,识别进入,随着后续的更新,从微信6.5.6版本起,用户也可以直接对小程序的二维码图片进行长按识别操作了,如图1-5所示。这无疑更加方便了小程序的传播,也更加凸显了二维码在整个推广过程中的重要地位。随后,在微信6.5.7版本中,微信推出了“小程序码”。“小程序码”是小程序的专属二维码,它将原来的正方形二维码,变为了更为圆润、活跃的圆形二维码,如图1-6所示。“小程序码”使用了微信自己的编码协议,只有微信才能识别扫描,进一步加大了微信对小程序入口的管控能力。图1-5 长按识别二维码操作图1-6 小程序码

3.通过好友分享获取

小程序可以被推荐给好友或者聊天群,如图1-7所示。小程序的某个单独的页面(如果页面允许)也可以分享给好友或者聊天群,如图1-8所示。但是,不像微信公众号的文章可以分享到朋友圈,小程序本身也好,某个小程序内的某个特定页面也好,都是不允许分享到朋友圈的。小程序的分享,不仅仅是一个传播,在很大程度上,还希望能带来一种全新的协作方式。如果是在一个群里面,用户启动了分享的小程序,小程序拥有每个人的登录状态,大家又是访问同样的任务,那么开发带有协作能力的小程序就是可行的。小程序不能分享到朋友圈的限定,也是最大限度避免干扰不需要使用相应小程序的人,从而营造一个健康的微信生态环境。图1-7 分享一个小程序给好友图1-8 分享某个小程序页面给好友

4.通过微信公众号进入小程序

微信公众号自推出至今,凭借其丰富的内容和广大的订阅用户,俨然成了自媒体的象征。一般来说,一个比较成熟的微信公众号,往往有固定的受众群体,而这类群体,无疑是将其转化为小程序用户的首选。因此,小程序和微信公众号也有着不少关联,从而吸引用户使用。(1)关联微信公众号和小程序

为了扩展小程序的使用场景,方便用户使用小程序,微信公众号可以关联小程序,使用户直接从微信公众号进入小程序。

关联规则如下:

•公众号可以关联不同主体的3个小程序;

•公众号可以关联同一主体的10个小程序;

•同一个小程序可关联最多3个公众号;

•所有公众号均可关联小程序。

已关联的小程序可被使用在公众号的自定义菜单、模板消息等场景中,运营者可以登录公众平台,在“公众号设置→相关小程序”中关联小程序,如图1-9所示。

关联成功后,在公众号的简介页面(如图1-10所示)及小程序的详情页面(如图1-11所示)中,可以看到关联的公众号或者小程序。图1-9 关联小程序操作图1-10 公众号关联小程序图1-11 小程序关联公众号

在公众号关联小程序时,还可以选择给粉丝下发通知,粉丝点击该通知就可以打开小程序(如图1-12所示),且该消息不占用原有群发条数。图1-12 公众号关联小程序通知(2)将小程序添加到公众号菜单栏

公众号可将已关联的小程序页面放置到自定义菜单中,用户点击后,即可打开该小程序页面。公众号的运营者可在公众平台上进行设置(如图1-13所示),也可通过自定义菜单接口进行设置。图1-13 将小程序添加到公众号菜单栏中(3)通过公众号模板消息打开相关小程序

公众号已关联的小程序的页面可以配置到公众号的模板消息中,用户点击公众号下发的模板消息,就可以打开对应的小程序页面。(4)将小程序添加到公众号群发文章中

为了方便用户在阅读文章时使用公众号提供的服务,在公众号群发的文章中支持添加小程序卡片,如图1-14所示。公众号群发文章只能添加该公众号已关联的小程序,在添加时可以自定义小程序卡片的标题和图片,指定小程序打开的页面。目前所有公众号的群发文章均支持添加小程序卡片。用户在阅读文章时,只需点击卡片即可打开对应的小程序,如图1-15所示。图1-14 公众号文章支持添加小程序图1-15 群发文章中的小程序卡片

通过以上几种方式,可以方便地从微信公众号中进入小程序,进一步加大小程序获取的便利程度,使更多的用户能从一个已经比较熟悉的环境(微信公众号)中,更快速、方便地接触新事物。1.2.2 功能特性

目前来说,微信公众平台的账号有服务号、订阅号、企业号和小程序4种类型。其中,订阅号主要偏向于为用户传达资讯(如报纸杂志);服务号主要偏向于服务交互(如银行、114等);企业号主要用于公司内部通信;小程序则专注于面向产品和服务,各开发者都可以按照自己的需求设计和开发小程序,为用户提供相应的功能。

在实现定制功能的技术层面,服务号、订阅号主要依靠微信内置浏览器通过访问网页的形式实现。这种方式只是将传统网站中的网页做了移动端的适配,而小程序则是通过WebSocket双向通信(保证无须刷新、即时通信)、本地缓存(图片与UI本地缓存降低了与服务器的交互延时),以及微信底层技术优化实现接近原生应用软件的体验。系统权限方面,微信小程序能够通过微信获得更多的系统权限,如网络通信状态、数据缓存能力等。这些改进,使小程序拥有比公众号内嵌的基于HTML5网页的应用更好的使用体验和更加丰富的功能。1.2.3 在微信中的入口

考虑到服务号、企业号、订阅号和小程序不同的功能特点,它们在微信中显示的地方也有所不同。服务号每个月只能群发4条消息,虽然限制了推广信息的发送次数,但是它和用户的聊天界面在同一个层级(如图1-16所示),增加了用户点击的概率;企业号作为企业内部的管理平台,不承担推广宣传任务,为了将通知消息等及时送达,也是和用户的聊天界面处于同一个层级;订阅号凭借其较低的注册门槛,以及每天都能发送1条推送的便利,成了各宣传平台最主要的注册账号,但是,为了避免过多的推送消息干扰用户,所有的订阅号都被放在了“订阅号”的文件夹中,只在用户的聊天界面占用一个对话框(如图1-17所示),如果用户没有关注过任何订阅号,那么这个“订阅号”对话框也不会出现在微信聊天界面中;同订阅号一样,如果用户没有使用过小程序,小程序在微信中也没有固定的入口,当用户通过搜索或者扫描二维码使用过小程序后,进入微信底部的“发现”栏,点击“发现”栏最下方出现的“小程序”选项(如图1-18所示),就可以看见所有自己曾经使用过的小程序了。图1-16 服务号在聊天一级目录中图1-17 订阅号被包含在“订阅号”二级目录中图1-18 小程序在发现栏中1.3 小程序与App

小程序是以“应用号”的名字第一次出现在公众的视野中。然而,由于苹果公司对“应用”两个字的限制,准备推出“应用号”的微信没能在App Store通过审核。由此可见,小程序对传统应用的冲击不小。对于 Android 用户来说,可以在微信中选择将小程序发送到桌面,将小程序发送到桌面后,小程序在桌面以图标的形式存在,通过点击图标就可以不用打开微信而直接运行小程序。这样的操作方式,使小程序更像系统的原生应用。小程序一经发布,也被外界广泛评价为传统手机应用的一场革命。那么,小程序和手机系统原生软件到底有什么区别?有了小程序,是否意味着传统手机应用不再必要了呢?下面的介绍可以简略地解答以上问题。1.3.1 运行原理

小程序基于微信运行,系统原生应用则直接运行在手机操作系统上。手机操作系统提供了统一且完整的接口来访问手机的硬件资源,通过这些接口,系统原生应用能有较高的权限和自由度来调用系统的硬件资源,相应地,它们也会占用系统空间。小程序则借助于微信,使用微信专门设计的框架,通过微信提供的接口,由微信这个系统原生软件与手机操作系统进行交互,它们之间的关系如图1-19所示。图1-19 小程序系统层级

微信赋予小程序的这些权限,使小程序有一定的访问手机硬件资源的能力,如读写缓存、查询手机网络状态、使用重力感应等。这使运行在微信内部的、类似网页应用的小程序拥有了可以媲美系统原生应用的流畅度。至于小程序究竟是怎么运行在手机上的,将会在本书第3章着重介绍。1.3.2 开发推广难度

据统计,一款完善的双平台系统原生应用软件平均的开发周期为3个月,而小程序的平均开发周期为2周,仅为系统原生软件的1/6。开发周期的缩短,带来的不仅仅是开发成本的降低,更是方便了应用的快速改进并不断适应新的用户需求。

据2016年瑞典电信设备制造商爱立信预计,到2022年,全球智能手机注册用户数量将达68亿,从而推动移动数据流量达到目前的8倍。各种各样的智能手机设备,给系统原生软件开发者带来的是令人头疼的兼容和适配问题。除手机硬件的差别外,手机系统的版本不一也是一个很大的问题。要想开发一款覆盖两大智能手机平台所有机型的软件,细节上的调试和优化将会花费相当多的时间。而对于微信小程序来说,开发者只需面对一个平台——微信进行开发即可,不需要考虑不同设备和操作系统之间软件展示页面和实现功能的区别。在这一点上,小程序将会节省大量的开发时间,从而让开发者可以有更多的时间去思考如何更好地满足用户需求。

除在开发过程中更为简单统一和节省时间外,小程序在发布时也更加方便。传统的系统原生应用软件,对于iOS平台还好,对于Android平台来说,由于国内没有统一的Android应用商店,开发者往往需要向十几个甚至几十个应用分发市场提交材料,接受应用分发市场的审核后再进行发布。而这里,各大应用分发市场需要的材料和审核的规则不统一,使开发者在发布 Android 应用时,过程相当烦琐。而小程序只需要提交到微信公众平台进行审核,审核通过发布后,所有使用微信的用户都能使用自己开发的小程序。相对而言,小程序在发布时能简化很多步骤,节约大量时间。

在应用推广的过程中,相较于系统原生软件需要用户下载各种大大小小的安装包,在没有无线网,用户又不愿意花费流量下载的情况下,小程序凭借其无须安装的特点,使用户更加愿意使用。而且,小程序有更为方便的分享方式,如果一个小程序足够有趣,那么它很容易在朋友之间进行传播,进而获得更多的用户数量。

需要注意的是,随着移动互联网和智能手机多年的发展,原生软件的市场已经趋于饱和,几乎所有的领域都已被覆盖,而小程序的市场则是一片蓝海,在新的使用场景下,还有很多瓜分市场大蛋糕的机会。对于各类初创团队来说,小程序是一个可以考虑的选择。1.3.3 使用体验

对于普通的消费者而言,无论使用小程序还是系统原生软件,如何在硬件条件有限的情况下最优地实现自己的需求才是他们最关心的。

在获取方面,系统原生应用需要在相应的应用市场下载、安装后才可以使用。这不可避免地会占用手机的内存空间。随着人们使用手机产生的数据越来越多,如果手机本身的存储空间不够宽裕,那么很快就会出现因空间不足而不能再安装新应用的尴尬。而小程序则几乎不占用系统空间,随手可得,用完即走,不用担心小程序驻留在手机中消耗手机资源的问题。小程序在硬件资源有限的情况下,给了普通用户另外的一个选择。

在功能方面,系统原生应用能实现完整的功能,小程序则仅限于使用微信提供的接口。目前而言,小程序完整地覆盖了购物、出行、饮食、资讯浏览等常见使用场景,基本能满足普通用户的日常需求。但是对于一些对动画和展示要求较高的应用,暂时还无法使用小程序实现,如大型3D游戏、模拟动画渲染等。

在安全性方面,由于接口功能有限和微信的审核机制,小程序比系统原生应用软件要好一些。这一点,尤其是 Android 用户可能体验得更为深刻。由于 Android 的开放性,加上国内对 Android 系统原生软件的审核规则不一,一些不良的 Android 系统原生软件往往会给用户带来隐私泄露、资费消耗等损失。而小程序被限制不能推送消息,也就不会有广告或者垃圾营销信息打扰用户,而且它也不会在后台偷跑流量或者进行一些涉及手机系统安全的操作。用户使用小程序,能使手机的负担进一步减轻。

在展示效果方面,小程序虽然不如系统原生应用那样有充足的自由定制页面,但是相比于网页,可以说进步了不少。目前,小程序已经达到可以媲美系统原生应用的流畅程度,用户将小程序发送到桌面生成相应图标后,就和使用一个独立的软件无异。由于微信小程序的限制,小程序的整体风格相比于系统原生应用软件更加统一和简约,能带给用户一致的视觉体验。第2章小程序的定位

作为一种新兴的网络应用形式,小程序无疑有着它的独到之处。小程序刚刚上线时,多种功能的小程序就已经面向用户开放了,如旅游、交通、购物、生活工具等,这些已经开放了的小程序大多都有一些共同的特性,即面向用户的服务类,尤其是针对线下提供生活服务类的功能。作为微信小程序的开发者,我们在开发之前应当仔细了解小程序的特点,同时利用其特点,在合适的情景下设计开发方案,针对不同环境和场景,进行具有适应性和针对性的开发工作。2.1 小程序的特点

对用户来说,小程序的最大特点就是无须下载安装直接使用,且无须担心应用安装太多的问题。而对开发者来说,小程序最值得注意的特点有以下几个。

1.与微信连通

小程序与微信是紧密结合在一起的。小程序可以通过微信进行直接的管理和登录,与开发者已有的App后台数据交互,使用已有的数据接口。这样的特点,降低了开发过程的复杂度,实现了将开发者已有的数据基础通过十分简单的方式进行移植,并在小程序上使用。例如,需要开发一个校车时刻表查询小程序的某高校单位,在此之前可能已经有了一套完整的从数据库、后台到前端的网页查询服务模式或者手机客户端的查询方式,此时如果进行小程序的开发,就可以方便地使用已有资料和数据库所提供的数据接口,在此基础上进行开发,无须进行更多的工作。但是,需要注意的是,小程序平台不支持小程序与用户App之间的直接跳转,这一点与手机原生应用是有极大不同的。

另外,在互联网时代,企业获取用户和线上流量所需要的成本越来越高,各种宣传手段层出不穷,但微信巨大的安装量带来了巨大的网络流量,通过重新开发一项手机应用,想要获取如此巨大的网络流量,不投入大量的时间、人力及推广资源,是不可能办得到的。由于微信平台的支持,小程序通过微信平台登录使用,也就是给每个小程序的开发者提供了一个巨大的潜在用户群体,小程序的开发者可以对自己所开发的小程序进行最简单、快速的推广,而且这种简单、快速、有效的推广方式所消耗的人力、物力等资源与传统手机原生应用相比是非常少的。当然,作为开发者不能只一味地考虑微信平台的传播优势和流量基础,更多的是要把重点放在开发和打磨更好的产品上。只有更好的产品,才能吸引更多的用户。由于小程序的入门门槛低,可以预见其竞争的激烈程度也会较高,因此就必须让自己的小程序在其他类似或者同类产品中脱颖而出,占有更多的用户。

2.低开发难度

小程序开发的入门门槛低,有一定网页开发经验的开发者基本都能做到快速入门。其类似于HTML的前端开发方式,能让有技术基础的开发人员快速掌握、快速开发。但需要注意的是,小程序自身并不支持直接的HTML+CSS。在此之前,百度也曾经推出过百度轻应用,采用HTML5的网页形式,目的是实现一键打开应用的快捷操作,然而对于HTML5的每个页面,都需要加载时间,因此在使用中出现缓慢、白屏等问题,同时每次返回后之前的页面就需要被重新加载,大大影响了用户的使用体验。小程序的开发有所不同,它不再是一个HTML5的页面,而是与FaceBook的React Native技术类似,平台自身自定义功能模块及各类按钮,如图2-1所示。图2-1 React Native

同时,小程序自身提供了大量的API(如图2-2所示),如果能够熟练使用这些API,将会对开发工作有巨大的帮助,进一步简化小程序的开发过程。

另外,由于基于微信平台,小程序的开发者不再需要考虑用户多种多样的手机机型,也不需要考虑开发多平台的 App。在这一方面,小程序开发大大降低了难度和成本,我们在开发原生App时需要考虑的问题将不复存在。例如,在iOS平台所开发的系统原生软件可能在审核上需要花费大量的时间,而开发 Android 平台的 App 可能需要担心发行版本的问题。同时,小程序也不需要在两个不同的平台上分别进行开发,这就意味着无须两套完全不同的开发方式。图2-2 小程序接口和组件

小程序的低开发难度与我们开发系统原生 App 并不矛盾,正如上文所谈论的微信与原生软件的区别一样,小程序彻底取代系统原生软件并不是一件可以预期的事情。对于开发商,我们可以先进行小程序的推广,在获取一定的市场资源和用户数据后再进行更完善的系统原生软件的开发。

3.独立生态

小程序是作为一个以微信为核心的独立软件生态而存在的。一个独立的软件生态系统,需要具有以下几个特点:

•具有自己的统一入口;

•使用该软件生态的统一语言;

•在平台的管理之下具有自己的严格规范和开发模式;

•开发者和平台本身是互相支持、互利共赢的关系。

对于小程序软件生态来说,以上特点均有所满足,它的官方平台是微信,以微信作为软件的统一入口,利用微信开发语言进行软件的设计和开发,并对其开发、运营、审核方面做了严格的规范和限定,开发者借助于小程序平台进行开发和推广,同时微信官方也通过各种各样的小程序获取到更多的线上和用户资源。虽然在直接获取利润方面,目前并没有相关的微信与开发者如何分成的文档发布,但这是完全有可能实现的。

在这样的一个软件生态环境中,以前各种长尾需求由于开发者自己的时间资源等条件限制无法得到满足,而现在有了小程序,除本身自己想要实现的主要目标和需求之外,对长尾需求也可以在这样一个标榜“轻量级”应用的小程序平台中做简单和直接的重新尝试。即使是一个很小的需求点,一个简单的功能,作为开发者,我们也可以以小程序的形式实现,其平台生存空间也十分可观。这样一个应用生态系统一旦完善起来,相当于在微信平台上实现了一个新的App Store。在这个App Store中需要完成什么目标,实现怎么样的需求,就完全取决于作为开发者的我们了。

4.安全性

小程序的审核发布并不是完全没有限制,它基于微信体系开发,也就被微信限制和管控,以防止微信自身或者开发者的自身利益受到损害。由于微信平台的关联及限制,小程序完全处在微信的控制之下,其开发者需要严格按照微信的规范进行开发和操作,上线也需要通过到微信的审核。不符合微信要求的小程序及页面内容是不能发布的,甚至要面临被直接封杀的风险。用户在使用小程序时,小程序的后台只能获得用户的昵称、头像等非隐私数据,而这些小程序内获得的数据大多停留在微信平台上,不能掌握在开发者手中。这也就意味着,小程序如果被封杀,其积累的用户流量和数据也无法保留。

同时,小程序不能实现跳转的功能,包括跳转到外部网站、外部链接、其他小程序。这与各种 Web 应用及系统原生的 App有很大不同,如图2-3所示。在保护开发者方面,各项小程序都有属于自己的AppID,用来防止恶意开发者伪造、仿制安全的小程序进行诈骗等行为。但这些特点,在保证小程序安全性的同时,也约束了小程序的功能性,使原生的系统应用有一些小程序注定做不到的事情。图2-3 程序的跳转2.2 小程序的使用场景

目前,已有的小程序包括但不仅限于以下几类。

•高频使用:美团外卖、滴滴公交查询、摩拜单车、滴滴出行、携程酒店、豆瓣电影(如图2-4所示)。

•工具:汇率e、二手车e、记账e、翻译e、100房贷助手。

•天气查询:天气 e、智慧气象服务、精准天气预报、30天天气预报。

•旅行:驴妈妈门票预订、飞常准查航班、南航 e 行、去哪儿出行、去哪儿酒店预订。图2-4 豆瓣电影小程序

从小程序上线开始就已经有很多开发公司推出了大量小程序,更多的小程序正在开发之中。

微信官方给出的小程序的应用场景是“更多的线下场景”。而小程序作为一种轻量级的应用服务形式,在线下场景中的确能发挥更大的作用,通过简单搜索、扫码等进入小程序并使用,方便了人们的生活。对于开发者来说,要根据自己的定位和需求的使用场景制定合适的开发计划。

对于大企业、大公司等开发方来说,由于小程序平台的限制,无法沉淀用户数据,也无法在App之间实现直接的跳转,因此将用户吸引到自家App以实现用户分流几乎是不可能的。在这样的条件限制下,我们应当采取什么样的对策呢?大企业、大公司有自己的开发和宣传方案,在经过一定时间的市场积累后,其在知名度和客户流量方面无须担心,这时需要的就是在小程序平台上进行最快速的获利,用小程序带来的流量直接实现变现,将核心服务最直接地提供给用户,以换取利润。上文提到的美团外卖、酒店预订都是这样的开发使用方式,快速实现用户在平台上的服务需求。

而对于小型创业者或者普通实体开发者来说,虽然小程序无法作为开发者理想中的最直接的开发形式,但可以以小程序为“试点”,开发具有某一方面功能的小程序,利用微信平台的巨大流量进行推广,在获取到一定的使用数据后,再开发具有完善功能性的 App,有效地防止自己的软件开发出来成为冷门应用的情况;另外,前期在小程序平台上的开发,也能作为独立开发App的宝贵经验,在取得有效的宣传效果的同时,也可以获取一定的利润,为后期开发提供更好的帮助。而对于提供简单实体店服务的小程序开发者来说,小程序能更好地实现其实体店线下模式的运作,在预约、支付、通知、用户管理等方面提供有效的帮助,同时也可以让自己的实体店借微信小程序平台得到更好的推广。通过“扫一扫”等形式直接获得客户的使用流量并提供服务,可以大大降低各项宣传和运营成本,并大大降低硬件需求,不再需要较高要求的带宽及服务器等成本,借助于微信和二维码等方式进行宣传,有效提升自己的知名度从而获取更多的利益。以餐馆为例,管理者可以开发出有针对性的小程序,实现用户的远程预约、远程点单等功能,让用户不用再受排队和等待之苦,只需拿出手机扫一扫二维码即可。

微信正在不断更新小程序,尝试开放更多的功能,小程序的功能和定位不断更迭,未来小程序可能无法完全取代App,但其潜力也绝不能低估。第3章小程序的运行

虽然开发微信小程序的主要语言WXML,WCSS,JavaScript和前端标准三件套HTML, CSS,JavaScript 几乎完全相同,但这并非代表小程序是以 Web 形式在微信中运行的。在编译小程序的过程中,编译器会根据配置和不同的组件生成Web对象或者原生控件,在配置文件中配置的tabBar等更是完全以原生控件的形式运行的,这给小程序带来了远超HTML5的用户体验。事实上,在小程序的官方文档中,并没有明确指出小程序是以何种方式运行的,这为其未来的进一步优化提升了空间。在开发小程序时,应严格按照文档中的注意事项进行开发(如在input组件中提到,不要将input放入scroll-view组件中)。

和原生应用一样,小程序从用户进入到用户使用完毕,也存在一个生命周期。不同的是,小程序的生命周期包含小程序本身的生命周期和小程序页面的生命周期。小程序完整的生命周期如图3-1所示,下面分别进行介绍。图3-1 小程序的生命周期3.1 小程序本身的生命周期

对小程序本身来说,有以下两种状态。

•前台运行状态:在这个状态下,小程序在前台运行,为用户提供服务,能够调用所有系统API。

•后台运行状态:当用户点击左上角关闭小程序,或者按设备 Home 键离开微信时,小程序并不直接销毁,而是进入后台。当用户再次进入微信或打开小程序时,又会从后台进入前台。此时小程序只能调用部分 API,并随时可能销毁。只有当小程序进入后台一定时间,或者系统资源占用过高时,它才会真正地销毁。

为了便于开发者控制小程序在各个生命周期的行为,小程序框架在小程序和页面状态发生变化时提供了若干事件。在相应的事件发生时会调用对应的回调函数进行处理。开发者需要做的只是将页面的数据、方法、生命周期函数注册进框架内,其他一切复杂的操作都交由小程序的框架来处理。

小程序的生命周期管理函数通过构建App时传入对象的属性构建,将事件名对应的属性设置为相应的函数即可注册,可以注册的事件如表3-1所示。表3-1 小程序生命周期变化监听函数

注意

为了真实地展现小程序生命周期的变化,我们在这里使用代码实例讲解。如果你是一位没有了解过小程序的初学者,那么你大可不必纠结于读不懂这部分代码,你只需查看代码运行的图片,了解具体的运行结果即可。关于每个文件具体的作用,以及开发者工具等的详细介绍,请参看后续内容。

下面演示小程序后台运行时生命周期的变化:

//app.js

App({

onLaunch: function () {

console.log("小程序加载。")

var logs = wx.getStorageSync('logs') || []

logs.unshift(Date.now())

wx.setStorageSync('logs', logs)

},

onShow: function (options) {

console.log("小程序显示。")

},

onHide: function () {

console.log("小程序隐藏。")

},

onError: function (msg) {

console.log(msg)

},

})

在代码运行过程中,首先启动小程序,触发onLaunch和onShow函数,在控制台输出“小程序加载”和“小程序显示”,如图3-2所示。再将小程序从前台转入后台,触发onHide函数,控制台输出“小程序隐藏”,如图3-3所示。再转回前台,触发onShow函数,在控制台输出“小程序显示”,如图3-4所示。图3-2 小程序加载和小程序显示图3-3 小程序转入后台隐藏图3-4 小程序再次转入前台显示3.2 小程序页面的生命周期

对页面来说,小程序框架管理了整个小程序的页面路由,可以做到页面间无缝切换,并赋予页面完整的生命周期。关于框架的管理,可参考6.1.2节中 MINA 页面管理功能部分的介绍。

页面的生命周期主要包括以下几个状态。

•未加载状态:当用户没有访问该页面时,该页面属于未加载状态。

•前台运行状态:当用户访问该页面时,该页面处于前台运行状态。

•后台运行状态:当用户从当前页面进入新页面时,或者小程序本身进入后台状态时,当前页面即进入后台运行状态。后台运行中的页面不会立即响应数据变化,当用户回到该页面时,该页面回到前台运行状态。当用户从当前页面返回,或者重定向到当前页面,或者在切换(Tab)时,该页面会被销毁。

同小程序本身具有各种监听生命周期变化的函数一样,小程序页面也具有很多可以注册监听生命周期变化的函数,如表3-2所示。表3-2 小程序页面生命周期变化监听函数

下面演示小程序页面生命周期的变化。

首先,新建一个首页fordemo,页面前端文件内容如下:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载