




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1研究背景2021年两会期间发布的《政府工作报告》中指出,“推进城乡公共文化体系一体建设,创新实施文化惠民工程,倡导全民阅读[1]”。这说明,“全民阅读”已经上升为国家战略,成为培养文化自信、实现民族复兴的精神索引。据《第十七次全国国民阅读调查报告》可得知:2019年,我国18岁以上国民的综合阅读率达到了81.1%,其中数字化阅读方式的接触率较2018年的76.2%上升了3.1个百分点,达到了79.3%。数字化阅读正在不知不觉中改变着人们的阅读习惯,它不仅可以降低了阅读的门槛,还可以提高了阅读时人们获取知识的效率。而人们的阅读也从以前的单人活动变为一种社会化的行为,这种社会化阅读行为是人与内容、社交等因素相结合的,而不再是读者单方面对知识进行获取。2017年,微信小程序正式上线,并受到了市场的热烈追捧。据《2019微信数据报告》可得知,微信的月活跃账户数为11.51亿,而微信小程序的活跃账户数则达到了3亿。对于开发者而言,微信小程序的开发门槛较低,它有自己的独立成熟的开发语法与开发工具,一方面节省了开发成本,另一方面也缩短了开发周期。对于用户而言,微信小程序的使用也非常便易,只要在微信搜索栏中输入小程序的名称或是通过扫描微信小程序的二维码,就可进入小程序。因此,微信小程序无需下载就可使用的优点以及微信庞大的用户群体,都使得微信小程序在推广运营和增加认知度方面有着不可替代的独特优势。目前,阅读社交领域在微信小程序上的发展仍存在不足,笔者对微信上已经发布运营的阅读类小程序进行了体验调查,以“微信读书”、“QQ阅读”、“咪咕阅读”等为代表的小程序均不具备在平台内与其他读者进行互动的功能,只能对书籍发表评论,社交属性比较单一。因此,本文的研究内容是基于微信小程序的社会化阅读社区设计与实现。该社区使用微信云开发技术,结合社会化阅读的特点,为读者提供一个满足在阅读的时候能和朋友交流分享的社交平台,为读者营造良好的阅读社交氛围,在交流中培养读者阅读的兴趣。1.2文献综述1.2.1国外对社会化阅读的研究现状国外对于社会化阅读的相关研究具有一些代表性观点:JohnJones[3]认为阅读都是从社交体验开始的,社交阅读就是一种在社区内分享阅读经验的行为,分享是阅读过程中的一项重要行为。CarolTenopir[4]等在对以近2千名英国人作为研究对象进行了深入观察以后,他们认为比起传统的阅读方式,社会化阅读更受读者的青睐,在社会化阅读的社交属性下,阅读价值和效率通过读者对自己的阅读心得和感悟的分享的得以提升。NuriaRomero[5]认为数字技术的发展使得读者的阅读方式更偏好于在线上进行互动和分享。HeikkilaH[6]认为社会化阅读在阅读的过程中可以同时与不在同一空间中的多位读者实现知识共享和交流等多种网络沟通,这是社会化阅读和传统纸质阅读的区别。RomeroN[7]认为来自朋友的推荐、分享、注释、评论等社会化阅读行为使得社会化阅读能够在智能终端下普及开来,通过对读者社会化交互行为的特征提取以及偏好挖掘,能够实现阅读的精准化推荐。1.2.2国内对社会化阅读的研究现状笔者在中国知网期刊全文数据库上,对“社交化阅读or社会化阅读”进行主题词的检索,截至到2021年4月7日,共得到了相关的学术期刊490篇,学位论文72篇。虽然总数不多,但是自2011年之后,关于社会化阅读的相关研究论文数量基本呈逐年增长的趋势,可知社会化阅读研究是当前学术界关注的热点话题。目前,国内社会化阅读研究内容主要集中在社会化阅读行为分析、推广路径、理论探索,以及用户满意度等方面。李武等认为社会化阅读往往特指一种借助阅读社区或者阅读平台开展的数字阅读活动[8]。毕秋敏等认为社会化阅读是一种以内容为核心,以社交关系为纽带,注重分享、交流和互动的移动阅读新模式[9]。高雯雯认为社会化阅读是一种以内容为核心、社交关系为纽带的新型移动阅读模式,认为读者之间的分享、交流和互动更重要。[10]。王海燕在其博士论文《移动终端社会化阅读研究》中介绍了在移动终端广为普及的社会背景下,社会化阅读的快速发展的三大驱动因素,对社会化阅读的三种形式进行了概括,并移动终端社会化阅读的核心特征——S(Sharing:分享)、I(Interaction:互动)、T(Transformation:转化)进行了清楚的论述和说明[11]。李天泽在硕士论文《社会化阅读的文化表征与意指实践》中认为社会化阅读社会化阅读不同于传统阅读活动中知识单方向向读者流动,认为阅读过程中的发生的读者与读者之间或读者与平台之间相互交流与互动以及读者身临其境的感受更为重要,社会化阅读的重点应该在于挖掘和梳理读者在阅读活动中产生的社交关系,并对社会化阅读的文化表征与意指实践进行了详细阐述。1.3研究目的和内容本文希望通过基于微信小程序云开发的社会化阅读交流社区的设计与实现,给予一个以读者为核心的阅读交流社区,为读者营造了一种适合社会化阅读分享的环境,使得以往较为谨慎和乏味的阅读变得更灵活和随意,读者的表达将不受时空约束,能够在阅读的同时进行社会交往与交流。阅读的价值在读者的交互行为中得以增值,阅读变得更有效率,读者也可以在阅读中建立新的社交关系。本文主要研究内容包括以下两个方面:(1)设计。对微信小程序的设计原则进行了阐述,同时对小程序的需求进行了详细分析,确定微信小程序的功能模块,拟设置了“用户登录功能”、“好书推荐功能”、“书籍录入功能”、“收藏功能”、“发布功能”、“展示功能”、“互动功能”、“搜索功能”、“消息中心功能”、“个人中心功能”等10个主要功能。(2)开发。对微信小程序开发过程中的准备工作做了详细的介绍,特别是开通万维易源网书籍查询接口服务。同时,详细的阐述了主要功能的核心实现。1.4论文结构本文以详细地介绍了开发社会化阅读交流社区的相关理论和所用到的技相关术,完成了基于微信小程序的社会化阅读交流社区的开发流程,包括对微信小程序的需求分析、设计、开发与测试,实现了为读者提供浏览书籍录入、浏览他人发布的读书心得、上传自己的读书体会等功能。全文共有五个章节,分别是:第一章,绪论。本章对本文的项目背景、国内外对社会化阅读的研究、本文的研究目的与研究内容等方面进行了阐述。第二章,相关理论与技术介绍。本章主要详细介绍了社会化阅读的相关理论,以及基于微信小程序的社会化阅读交流社区开发过程中所使用的相关技术。第三章,小程序需求分析与设计。本章详细介绍了基于微信小程序的社会化阅读交流社区开发的可行性分析、系统的功能需求和设备需求,以及微信小程序云开发功能相关设计和功能设计。第四章,小程序开发与测试。本章详细介绍了系统开发前的准备工作以及主要功能的核心代码,并且展示了微信小程序的测试结果。总结与展望。本章对整个开发流程作出总结并展望未来。
第2章相关理论与技术介绍2.1社会化阅读2.1.1社会化阅读的概念到目前为止,学术界对“社会化阅读”的概念并没有一个较为统一的定论。本文认为,社会化阅读以读者为核心,强调分享、互动、传播的全新阅读模式,相对于传统的以书为核心、以内容为主的阅读模式,它更加注重人本身[13]。社会化阅读会给予阅读过程中的社交活动和关系一定的重视,倡导用户生成内容、共同传播和共同赢利,在多方位的互动基础上,无限放大阅读的价值[14]。社会化阅读打破了时间与空间的限制,使得阅读互动不再是知识单方面流向读者,而是一种读者基于自身的阅读兴趣进而产生交流和互动的社会行为,有助于对“全文阅读”活动的发展产生推动作用。2.1.2社会化阅读的发展其实,社会化阅读并不是一个新鲜事物,曾经兴盛于17世纪的读书沙龙和传统的读书俱乐部,都是社会化阅读的一种,读者在这些活动中对阅读内容进行互动和分享。不过,随着近些年互联技术的发展,社会化阅读才获得了实质性的进展,阅读的场景、行为、体验都发生了巨大的改变。首先,读者可以随时随地地开展阅读行为,而不用受到时间和空间的限制;其次,读者可以通过网络社交媒体来阅读好友分享和推荐过来的内容,社交关系因阅读而延伸,同时读者与阅读之间的黏性更大;最后,读者的阅读内容也不再仅局限于文本文字,阅读变得更有趣,而且由于媒介技术的进步,读者获取内容的能力也在增强,阅读变得有效率和便捷。社会化阅读不再是内容单方面流向读者,而是读者生成内容与基于读者的阅读偏好和社交关系形成的阅读社交群体之间的分享交互行为。社会化阅读改变了读者获取阅读内容的方式,构建了一种新型的阅读模式。2.1.3社会化阅读的基本特征1.社会化阅读的分享特征继共享单车火爆后,共享汽车、共享充电宝、共享篮球、共享雨伞等类似的“共享行为”层出不穷,这说明,全民共享的时代已经到来。分享是移动互联网时代的重要特征,人们在进行网络活动时,免不了发生分享行为。而社会阅读中的分享行为则是读者对自身生成内容的分享,可以是单纯的分享喜好,也可以是对自身阅读体会的分享。通过读者对社会交流和分享的欲望来激发对阅读交互的兴趣。个人精神需求的满足是读者阅读时发生分享行为的关键。社会化阅读的分享行为有两种类型。第一种是“原创分享”,即读者在社会化阅读社区中与其他读者分享自己的阅读感受。第二种个是“转发分享”,即读者通过转发给好友来表示自己对内容的认同。读者的自身形象可以通过分享交流与互动来得以构建,并且还可以加深与对相似阅读感兴趣的朋友的关系。2.社会化阅读的互动特征互动也是移动互联网时代的一个重要特征,在进行网络活动的过程中,人们免不了与他人发生互动,可以说,人们的网络活动都是基于互动行为产生的。社会化阅读中互动特征主要指的是读者与读者之间、读者与作者之间、作者与作者之间的关于阅读内容的多轮次的交流和沟通。。社会化阅读的互动行为有三种不同的形式,第一种是兴趣型互动,读者出于自身的阅读兴趣爱好进行互动;第二种是问题型互动,读者在阅读过程中针对某内容产生了困惑,进而在社区中提出问题,读者与回答问题的读者或作者进行互动交流;第三种是交往型互动,读者的第一需求是进行社交。在移动互联网平台上,读者是通过评论与回复来展开互动和社交的,读者可以就自己的想法和问题来表达观点,形成社交关系,并在互动交流的过程中产生新的观点、问题和社交关系。2.1.4社会化阅读的常见场景1.传统的社会化阅读场景“读书会”是传统的社会化阅读形式的最佳代表。“读书俱乐部”、“书友会”、“读书沙龙”等都是读书会的一种,其核心都是为读者提供一个可以进行社交的场所。随着互联网与媒体技术的迅速发展,网络读书会的产生也是水到渠成。网络读书会的含义有狭义和广义之分。狭义上的网络读书会仅指一种线上的虚拟阅读社群,而广义的网络读书会指在开展线上读书会的同时,定期也会同步开展线下活动[15]。读者在参与网络读书会的过程中,往往阅读相同的内容,然后进行读书感悟的分享和思想的交流,在交流中精进,拓宽自己的视野。2.基于在线网站的社会化阅读场景在“新浪新闻”、“今日头条”等在线网站阅读新闻信息已经人们生活中习以为常的阅读活动,除此之外,在“起点中文网”、“晋江文学城”等网络文学网站浏览文学作品也成为常态。这些在线阅读网站通常会为读者提供分享和互动的机会,发挥读者主动参与交流的能力,满足读者的个性化需求。阅文集团旗下的起点中文网是典型的基于在线网站的社会化阅读平台,是国内最大文学阅读与写作平台之一。起点中文网的内容基本以网络原创文学为主,并为读者提供了可以进行社交的专区,如编辑推荐、粉丝排行、作家专区等。3.基于社交媒体的社会化阅读场景基于社交媒体的社会化阅读是将阅读与社交媒体相结合,社交媒体的社交属性得到了充分的发挥。在微信公众号进行阅读就是典型的基于社交媒体的社会化阅读形式,读者关注微信公众号并阅读其文章基本是受到自身兴趣爱好的影响,读者可以对微信公众号的文章进行评论或转发到微信朋友圈。优质内容的分享可以形成口碑效应,同时增加了读者的黏性,增进读者对内容的深入理解。读者关注微信公众号并阅读其文章基本是受到自身兴趣爱好的影响。2.2微信小程序框架介绍MINA框架是小程序开发所使用的独有框架,其目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务[16]。MINA框架的具体结构如图2-1所示,共包含三个部分,即JSON配置、逻辑层和视图层。图2-1小程序架构(MINA架构)JSON配置的作用是对小程序进行全局配置。逻辑层由JavaScript完成,其作用是实现事件响应,请求数据与服务器交互。视图层由两种微信提供的描述语言WXML和WXSS完成,WXML的作用是根据JSON配置和逻辑代码展示相应的数据和内容,WXSS的作用是对页面布局的样式进行设置。MINA框架提供了一套基础的组件和丰富的微信原生接口,组件自带微信风格的样式以及特殊的逻辑,而这些API可以直接对微信提供的能力进行调用。第3章小程序需求分析与设计3.1可行性分析1.经济可行性本项目的开发和维护的成本较低。由于微信小程序只能通过微信来访问,因此开发者在进行微信小程序的开发时不需要考虑去适应不同移动智能终端的操作系统,也就不用像App一样需要开发多种不同的版本。本项目的学习成本也较低。这是因为微信小程序使用的是其特有的MINA框架来进行开发,该框架的特点就是开发者只需专注于小程序业务逻辑的设计即可。从编程语言来看,无论是标记语言WXML和WXSS,还是Javascript语言,都是适用范围较广的语言。2.技术可行性本项目所涉及的功能开发技术都能够实现,从目前已有的微信小程序以及微信小程序开发者工具提供的API和组件来看,微信小程序支持用户授权登录,支持条形二维码的扫描,支持用户上传资源,支持用户分享页面,支持用户评论和回复。3.社会环境可行性随着技术的进步,移动阅读、数字阅读、碎片化学习等理念已经深入人心。同时,人们希望通过碎片化的知识交流,个性化的阅读推荐,和社交化的阅读互动来满足了更有效率,更有价值,更具社交性的阅读需求。3.2小程序需求分析3.2.1功能需求本社会化阅读交流社区的目的是打造一个读书心得交流平台,用户可以在平台上发表自己关于某本书的读书心得或读书笔记。对于读书心得或读书笔记,用户可以进行点赞、转发和评论等互动。本社会化阅读交流社区的需求主要包括以下几点:用户登录。每日好书推荐。扫描书籍的条码获取书籍信息。可以对书籍进行收藏。发布读书心得或读书笔记。对所有用户发布的读书心得或读书笔记进行展示。可以对他人发布的读书心得或读书笔记进行互动。可以对发布的读书心得或读书笔记进行关键词搜索。可以提醒用户有其他用户对自己发布内容的互动情况。可以对用户自己发布过的读书心得以及评论进行查看。上面列举了本社会化阅读交流社区应用中核心的10个需求,其中第三项书籍录入功能需要借助第三方接口服务来实现,其他功能可以通过云开发技术来完成。3.2.2设备需求在开发基于微信小程序的社会化阅读交流社区的过程中,需要使用到的设备主要是个人计算机设备和智能移动终端设备。1.个人计算机设备个人计算机设备主要是用来下载微信小程序开发者工具,并进行代码的编写。除此之外,本项目的开发还用到了微信小程序的云开发功能,因为个人计算机设备还需要用来配置云端信息以及对云端资源进行管理。个人计算机的操作系统可以是Windows系统也可以是iOS系统,需要注意的是,如果个人计算机的操作系统是Windows系统,那么系统的版本必须是Windows7以上,方可运行微信小程序开发者工具。2.智能移动终端设备智能移动终端主要是用来安装微信软件,在微信小程序的开发过程中进行真机测试。由于微信小程序是微信的内置小程序,因此只要智能移动终端各功能良好,可以安装微信软件,并能够打开扫一扫,以及可以进行良好的操作体验即可。3.3小程序设计3.3.1云开发功能相关设计1.云函数设计云函数指的是在云端环境中运行的一组程序代码。云函数功能通过在云端创建云函数实例来帮助开发者完成复杂的业务。本文共定义了7个云函数来配合小程序的功能调用。如表3-1所示为云函数列表。2.云存储设计云存储功能提供了上传文件资源到云端、带权限管理的云端下载能力,开发者可以通过调用接口wx.cloud.uploadFile和wx.cloud.downloadFile在小程序端实现对文件资源的上传和下载。除此之外,开发者还可以直接打开云开发控制台进行上传和下载的操作。读者在社会化阅读交流社区进行交互时,有时需要上传图片资源,而图片资源会占据大量的存储空间,因此本微信小程序在云存储中创建了一个文件ss_img来存储用户上传的图片资源,如图3-1所示。表3-1云函数列表名称运行环境功能checkImgNodejs10.15对上传图片进行审核checkStrNodejs10.15对上传文本进行审核deleteNodejs10.15用户删除自己的收藏、发布、评论信息dianzanNodejs10.15用户点赞行为fbplNodejs10.15用户发布评论行为jubaoNodejs10.15用户举报行为loginNodejs10.15用户登录looksNodejs10.15用户浏览行为图3-1云存储文件ss_img3.云数据库设计若开发者使用微信小程序的云开发技术则不需要自建数据库,云开发提供了一个JSON格式的数据库,不同于关系型数据库,微信小程序的云数据库以集合的形式存储,集合就相当于关系型数据中的表。开发者可以对云数据库中的集合数据进行带权限管理的增删改查。本文中的微信小程序共创建了4个集合,分别为用户集合users,书籍集合books,读书心得或笔记集合ss和系统集合system。用户集合users存储的是微信小程序的用户信息,users集合记录数据表如表3-2所示。当有新用户登录时,小程序获取到用户信息之后,利用setData将用户信息存储到云数据库的users集合中,便于其他页面调用用户信息。书籍集合book存储的是通过ISBN是扫描得到的书籍信息,book集合记录数据表如表3-3所示。用户通过微信小程序的书籍录入功能进行书籍信息的请求,请求完成后再对云数据库中的book集合进行查询,如果云数据库中没有此书籍的信息,则将此书籍的数据插入到book集合中。表3-2users集合数据表字段标识符数据类型说明_id√string用户idopenid-string用户openidallow-bollean是否授权ban-bollean账号是否被封book-object收藏的书籍信息message-array消息情况online-boolean是否在线nglunguo-array发布的评论消息userinfo-object用户信息weiguinb-number内容被举报次数wenzhang-array发布的文章信息表3-3book集合数据表字段标识符数据类型说明_id√string书籍idtitle-string书籍名author-string书籍作者image-string书籍图片地址detail-object书籍详细信息intro-string书籍简介plinfo-array书籍的评论信息读书心得或笔记集合ss存储的是用户发布的读书心得或笔记的详细信息,包括与其他用户的互动详细信息,ss集合记录数据表如表3-4所示。当用户对录入的书籍进行读书心得或笔记发布后,该读书心得或笔记信息就会添加到ss集合中,当其他用户对该读书心得或笔记进行点赞评论等互动交流行为时,相应的信息也会同步更新到ss集合中。系统集合system中存储了两个文档,文档001存储的是管理员的id信息,文档002存储的是开发者的微信、邮箱等信息,便于用户与开发者进行联系沟通,开发者也可及时获得用户的使用反馈。表3-4system集合数据表字段标识符数据类型说明_id√string内容idopenid-string发布者idss_xx-object读书心得或笔记互动详细信息time-number读书心得或笔记发布时间bookinfo-object所评论的书籍信息3.3.2小程序功能设计基于以上可行性分析和需求分析的研究,对小程序的功能及其页面结构进行介绍:1.用户登录功能用户授权登录是小程序的主要功能之一,用户点击登录按钮,小程序界面会弹出弹窗询问用户是否同意授权使得微信小程序获得用户的微信信息。若同意,则跳转到个人中心界面。2.好书推荐功能开发者通过后台操作,将要推荐的好书宣传海报植入到微信小程序的轮播器中。用户可以通过点击相应的海报,进入好书推荐的文章页面进行浏览和互动。3.书籍录入功能书籍录入功能是本微信小程序的一大核心功能,用户可以通过扫描书籍的条形码获取书籍详情,并查看其他用户发布的该书籍的读书心得和评论。4.收藏功能当用户对书籍的条形码进行扫描获取详情后,可以对书籍进行收藏,便于查看。5.发布功能当用户对书籍的条形码进行扫描获取详情后,可以对该书籍发布自己的读书心得或笔记,发布内容可以选择文本形式以及图片形式。6.展示功能所有用户发布的读书心得或笔记会即时地展示在微信小程序首页,便于用户进行浏览和互动。读书心得和读书笔记的展示有两种排序方式,一种是通过时间顺序进行展示,另一种是通过一周内的热度进行展示。7.互动功能互动功能是本微信小程序的另一大核心功能,用户对其他用户发布的读书心得或笔记进行互动,互动操作包括点赞、转发、评论和举报。当用户退出当前发布内容后,将在首页显示更新后的互动状态。8.搜索功能用户通过在首页搜索框中输入想要搜索的内容关键字,就会显示出搜索结果。9.消息中心功能当有其他用户进行互动评论时,手机会震动提醒用户查看未读消息,在消息的图标处也会刷新出消息红点。当用户点击消息做出回应后,已读消息不再出现于消息界面,红点也会消失。消息可以通过向左滑动删除。10.个人中心功能登陆后,用户可以在个人中心界面看到自己的头像和用户名。此外,用户还可以查看或删除自己收藏的书籍、已发的读书心得或笔记以及评论信息,用户还可以查看开发者微信、邮箱和自己的用户id。3.3.3小程序页面布局设计小程序运用了较为温和的色系,页面较为精简大方的设计,底部导航栏设置了四个tab页来进行主要页面的切换,旨在为读者营造更加舒适的用户体验。1.首页首页是微信小程序的核心页面之一,大部分主要功能都在首页进行触发。如图3-2所示,用户进入小程序后即可看到首页界面,此页面由搜索框、书籍推荐区、读书心得或笔记展示区三部分组成,在相关区域进行操作,即可实现页面的跳转或是功能的实现。2.读书心得或笔记发布页面当用户录入书籍获得书籍信息后,可以选择对该书籍进行读书心得或笔记的发布。用户可以选择发布纯文本评论或添加图片。该页面由书籍信息区、文本编辑区、图片添加区和发布按钮四部分组成,如图3-3所示。3.消息中心页面当有其他用户对读者发布的读书心得或笔记或留言进行评论回复或举报时,如图3-4所示,消息中心会在底部导航栏的图标上显示消息数量的标志,在页面上会显示出相关的信息以便用户快速作出回应。4.个人中心页面个人中心页面由用户基础信息区和用户详细信息区两部分构成。如图3-5所示,当用户授权登录微信小程序后,可以在个人中心页面看到自己的头像和昵称,出于美观考虑,该区域的背景图片设置为用户头像的虚化放大版。用户可以在该界面点击相应的区域查看自己的详细信息。图3-2首页页面结构图3-3发布页面结构图3-4消息中心页面结构图3-5个人中心页面结构第4章小程序实现与测试4.1小程序的准备工作4.1.1小程序账号注册注册小程序账号是开发微信小程序的第一步。首先进入微信公众社区官网,在账号分类中选择小程序进行注册。然后填写邮箱和密码,并激活邮箱,最后选择主体类型、完善主体信息和管理员信息,如图4-1所示。本微信小程序因不具备其他组织机构类型的条件,因此选择“个人”主体类型进行注册。。图4-1微信小程序账号注册页4.1.2小程序开发环境配置1.微信开发者工具微信官方提供了微信开发者工具专门用来开发微信小程序,开发者可以开发调试微信小程序页面,查看和编辑程序代码,对小程序进行预览,还可以发布微信小程序。基于此,本文选择使用微信开发者工具来完成开发工作。微信官方提供了适用于Windows和iOS两个不同版本操作系统的微信开发者工具,如图4-2所示。本微信小程序根据个人计算机设备的操作系统选择“稳定版StableBuild(1.05.2103200)”的64位版本进行下载开发。图4-2微信小程序开发者工具2.云开发微信小程序的云开发功能是微信团队联合腾讯云推出的专业的小程序开发服务。其优势有:无需搭建服务器,直接使用平台提供的API进行快速开发业务;免登录、免鉴权,保证业务安全性;支持环境共享,统一开发多端应用,便捷复用业务代码与数据;不限开发语言和框架;按量计费,成本更低。微信小程序的云开发功能使得开发者可以专注于小程序业务逻辑的设计,服务器的设计与维护的成本较低。基于此,本文选择开通微信小程序的云开发功能来进行小程序业务的开发。打开微信开发者工具,在菜单栏中选择“云开发”进行云开发功能的开通,如图4-3所示。图4-3微信小程序云开发4.1.3开通万维易源网的书籍查询接口服务每一本上市的书籍都拥有一个ISBN,即通常印刷在书籍封底的条形码。如果扫描这个条形码会得到一串10位或13位的字符串,通过这串字符串可以查询当前书籍的详细信息。在万维易源网可以通过ISBN获取书籍详情的接口,这个接口需要付费使用,但每个用户最初有10次的免费测试机会。在网站首页的搜索栏中输入ISBN可以查询到需要的接口,得到的结果如图4-4所示。使用万维易源网提供的接口服务,需要先注册为网站的会员。图4-4万维易源网搜索ISBN查询接口服务信息填写完成后即可成为会员。本文选择使用“ISBN查询书籍数据-专业版”作为本微信小程序接口服务。该接口为万为易源与专业书商合作推出的数据接口,对一些冷门书籍有较高查得率,可查得出版物的中图法分类、cip等专业信息。在“ISBN查询书籍数据-专业版”接口的详情页中可以选择套餐,在万维易源会员后台的“单独接口资源包”中可以查看生效的套餐与套餐余量,如图4-5所示。之后还需要在万维易源后台创建一个应用程序,在“我的应用”栏目中可以进行应用程序的创建,如图4-6所示。图4-5查看生效的套餐详情图4-6创建的应用程序在创建应用程序时,要选择此应用程序可以调用的接口服务。应用程序创建完成后,万维易源后台会自动为这个应用程序分配一个appId和密钥,通过appId和密钥可以进行接口服务的访问。4.2小程序主要功能实现4.2.1用户授权登录功能的实现图4-7微信小程序登录过程用户登录功能通过云函数实现,便于反复调用。登录过程中小程序首先需要获得临时登录凭证code,此步骤通过wx.cloud.callfunctiono调用云函数login()实现。登录凭证的有效期为5min,并将凭证发送到服务端,开发者需要在开发者服务器后台调用api,使用code交换取用户标识(openid)和会话密钥(session_key),session_key可以对用户数据的通信进行加密和解密。开发者服务器会生成用户信息并存储和加密,同时设置登录状态过期时间并向微信小程序返回业务数据,同时微信小程序调用接口getUserProfile方法获取用户头像、昵称等基本信息,完成登录。整个登录过程如图4-7所示。4.2.2书籍录入功能的实现该功能需要借助第三方接口服务即万维易源网的书籍查询接口服务来完成。在书籍录入界面,用户通过点击扫描按钮进入扫描,小程序通过调用接口wx.scanCode方法直接弹出为微信系统的扫描条码界面,将scanType参数设置为EAN_13后,则只会对条形码进行识别,而不会被其他二维码等条码干扰。如果扫描成功,则调用请求方法进行书籍信息的请求。通过书籍的ISBN进行书籍信息的请求,请求完成后再对云数据库进行查询,如果云数据库中没有此书籍的信息,则将此书籍的数据插入云数据库中。具体代码实现如下:var
network
=
{
getBookData:
function
(isbn){
return
new
Promise
((resolve,
reject)
=>
{
wx.request({
url:
'/1626-1',
method:
'GET',
dataType:
'json',
data:{
”showapi_timestamp”:date(),
”showapi_appid”:
'639206',
”showapi_sign”:
'48a049ef64704a07ae9964ea2d231a7e',
”isbn”:
isbn
},
success:
function(res){
var
book
=
res.data.showapi_res_body.data;
db.insertBook(book).then(()
=>
{
resolve(book);
}).catch((error)
=>
{
wx.showToast({
title:'查询失败',
})
});
},
fail:
function
(error){
reject(error);
}
});
});
},};addBook:function(){
wx.scanCode({
scanTType:'EAN_13',
success:function(res){
network.getBookData(res.result).then(()
=>
{
wx.showToast({
title:'成功',
})
}).catch((error)=>{
wx.showToast({
title:'没有关于此书的信息'
})
});
},
})}4.2.3发布功能的实现发布读书心得或笔记功能的前提是用户已登录,当用户点击添加读书心得或笔记时,首先需要对用户是否登录进行验证,如未登录小程序则跳出弹窗提醒用户在用户登录页面进行登录。小程序使用wx.chooseImage接口将本地相册中的图片文件进行添加。用户完成输入后点击发布按钮。小程序调用云函数checkStr和checkImg对要发布的文本和图片进行合法性检测,如若没有问题,则通过审核。调用uploadfile接口上传数据到数据库,图片资源解析出地址后存入云存储文件中。发布功能的核心代码如下:
if(zs!=0){
wx.showLoading({
title:
'就快好了...',
mask:true
})
var
fileID=[]
var
js=0
for(var
i=0;i<zs;i++){
//取图片的大小进行判断
var
path=ss_img[i];//取当前图片路径
var
size=await
this.qudaxiao(path)
console.log(”图片的大小是”,size)
if(size>=1048576){
//超过1M需要进行压缩!!
path=await
this.yasuo(path,0.92,800)
}
var
time=new
Date().getTime()
//直接拼接出云路径
fileID[i]=”cloud://cloud1-1gemxb3z9d15b479.636c-cloud1-1gemxb3z9d15b479-1305648722/ss_img/”
+time.toString()+”.jpg”
wx.cloud.uploadFile({
cloudPath:
”ss_img/”+time+”.jpg”,
//
上传至云端的路径
filePath:
path,
//
小程序临时文件路径
success:
res
=>
{
js++//记录成功获取云储存路径的图片数量
if(js==zs){
ss_xx.tp=fileID
this.post(ss_xx)
}
},
})
}
}else{
this.post(ss_xx)
}4.2.4互动功能的实现用户间的互动行为是本微信小程序的重要功能组成,包括浏览、点赞、评论回复、举报。这些互动由于在用户使用小程序中被频繁使用,因此通过云函数的调用来实现。 实现浏览量计算功能的云函数的核心代码如下:exports.main
=
async
(event,
context)
=>
{
var
id=event.id
var
type=event.type
if(type=='ss'){
cloud.database().collection('ss').doc(id).update({
data:{
'ss_xx.look':cloud.database().command.inc(1)
}
})
}else{
cloud.database().collection('tj').doc(id).update({
data:{
'look':cloud.database().command.inc(1)
}
})
}}实现点赞量计算功能的云函数的核心代码如下:exports.main
=
async
(event,
context)
=>
{
var
dzrid=event.dzrid
const
db=cloud.database()
const
_
=
mand
if(dzrid==null||dzrid==undefined||dzrid==””){
return
}
db.collection(”ss”).doc(event.id).get().then((res)=>{
var
dianzanid=res.data.ss_xx.dianzanid
var
yn=dianzanid.indexOf(dzrid)
if(yn==-1){
db.collection(”ss”).doc(event.id).update({
data:{
”ss_xx.dianzanid”:_.push(dzrid),
”ss_xx.dianzannb”:_.inc(1)
}
})
return
}else{
db.collection(”ss”).doc(event.id).update({
data:{
”ss_xx.dianzanid”:_.pull(dzrid.toString()),
”ss_xx.dianzannb”:_.inc(-1)
}
})
return
}
})}实现举报功能的云函数的核心代码如下:exports.main
=
async
(event,
context)
=>
{
var
jbrid=event.jbrid
const
db=cloud.database()
const
_
=
mand
//先看数据库中举报数加完是否达到
db.collection(”ss”).doc(event.id).get().then((res)=>{
var
total=res.data.ss_xx.jubao[1]
var
lzid=res.data.ss_xx.lzid
if(total>9){
return
}
if(total<=8){
//加完小于等于九,可以直接加
db.collection(”ss”).doc(event.id).update({
data:{
”ss_xx.jubao.0”:_.push(jbrid),
”ss_xx.jubao.1”:_.inc(1)
}
})
return
}else{
db.collection(”ss”).doc(event.id).update({
data:{
”ss_xx.jubao.0”:_.push(jbrid),
”ss_xx.jubao.1”:_.inc(1),
//清空评论
'ss_xx.huifunr':[],
'ss_xx.huifunb':0
}
})}}4.2.5推荐功能的实现推荐功能通过小程序首页的轮播器展示。当用户在轮播器区域点击相应的推荐文章的海报时,小程序通过使用navigator组件使页面跳转进入相应的推荐文章页以便用户进行浏览,推荐文章可以通过与微信小程序关联的微信公众号文章的链接进行展示。4.3小程序测试小程序开发完成后,可以对其进行测试,保证小程序上线后可以稳定运行。微信开发者工具自备体验评分工具,可以在小程序运行时进行实时的检查,分析出体验不好的地方,并作出评分和建议。在测试时,首先需在详情里切换基础库到2.2.0或以上版本。然后在调试器区域切换到Audits面板。点击”开始“按钮,在模拟器区域对小程序的界面进行操作。如图4-8所示,该社会化阅读交流社区的微信小程序的体验评分为95分,具体为性能100分、体验83分、最佳实践90分,体验结果为良好,可以考虑上线运行。图4-8小程序体验评分
结论与展望1.研究结论本文通过对社会化阅读的相关研究进行整理,结合移动互联网时代背景下数字化阅读的特点,针对当前基于微信小程序的社会化阅读交流社区开发较少的问题,本文希望通过基于微信小程序云开发的社会化阅读交流社区的设计与实现,完成一个以读者为核心的社会化阅读交流社区,小程序实现了用户授权登录、书籍录入、读者互动、书籍推荐等功能,并对微信小程序进行了测试,评分为95分。目前由于该社会化阅读交流社区系统目前还处于试运行阶段,开发调试工具还不完备,并没有正式上线运营,因此用户使用评价有待提升。2.研究展望随着现代技术的进步与发展,微信小程序的功能会日益强大,其在阅读领域的应用也会越来越广泛。同时,伴随着生活节奏的加快,使用移动智能设备开展社会化阅读活动,会成为未来阅读的趋势。未来微信小程序在社会化阅读分享交流领域的研究可以从以下两个方面探索:引导建立新型的阅读社群。目前的社会化阅读交流中,读者出于评论和回复的篇幅限制,不能进行更广泛的自我表达。因此,引导建立新型阅读社群即在原有社交网络的基础上创造更加开放、多元、自由的讨论平台,使得读者可以进行更深层次的交流和探讨。提供更好的阅读推广服务。利用微信小程序可以和微信公众平台相结合的特点,吸引更多的读者,引导读者养成良好的阋读习惯和提高学习与思考的能力,提供更好的阅读推广服务。
参考文献[1]国际在线.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/ZHCA 023-2023面部毛孔紧致类化妆品功效评价方法
- 2025贵州医科大学神奇民族医药学院辅导员考试试题及答案
- 2025贵阳职业技术学院辅导员考试试题及答案
- 2025百色学院辅导员考试试题及答案
- T/ZGZS 0909-2023退役光伏组件梯次利用通用规范
- 急救配合流程标准化实施
- 包头常铝北方铝业有限责任公司招聘笔试题库2025
- 财务报表分析技能2025年试卷及答案
- 社工师职业资格考试试卷及答案2025年
- 2025年土木工程设计基础考试试题及答案
- 工程质量管理文件
- 2025“背锅”第一案!宁夏兴尔泰化工集团有限公司“12·2”事故调查报告课件
- 监理部年度安全生产管理工作考核暨安全管理自查报告
- 《古代汉语》否定句否定词课件
- 餐饮行业人事管理流程创新
- 四川省攀枝花市重点名校2025届中考联考生物试题含解析
- 舞台灯光色彩学应用-深度研究
- 肥胖健康知识科普
- T-CAICI 88-2024 信息通信工程建设安全风险分级管控和隐患排查治理通.用要求
- 《中考前心理辅导》课件
- 医疗核心制度题库含答案
评论
0/150
提交评论