二、阅读器的开发(初始)-- 1、阅读器简介及开发准备工作

Android开发--MVP demo+Jsoup在线小说阅读器(一) 因为最近身体不好又是偷懒了一阵子没有更新…这次带来的是一个在线的小说阅读器.目前已经实现了基本的功能,完成了大概的框架,剩余的部分慢慢来更新。先放上源码github https://github.com/CallMeSp/ToRead_MVP.git 求star。里面也有这个项目没有应用mvp结构的源码可以用来对比一下。 最近看了MVP框架,所以这个项目也采用了mvp框架,参考了mv 阅读详情

1、阅读器工作原理及开发流程

1.1阅读器工作原理简介

电子书(有txt、pdf、epub、mobi等格式)->解析(书名、作者、目录、封面、章节等)->(通过阅读器引擎)渲染 -> 功能(字号、背景色、目录、书签等)

epub是现较为主流的电子书格式,mobi是亚马逊kindle的电子书格式,我们用epub,目前主流的阅读器APP对epub都有良好的支持

1.2开发流程

开发准备 -> vue cli 搭建 -> 依赖包下载 -> 项目配置 -> 阅读器解析 -> 阅读器渲染 -> 翻页功能 -> 字号背景 -> 进度条 -> 目录

2、开发准备+搭建vue脚手架

2.1开发准备工作(生成字体图标)

我们在icomoon里面下载我们需要的字体图标

2.2搭建vue脚手架

首先需要有node、vue环境,可以控制台中看看node -v ; npm -v ;vue -V

我这里用的是vue cli 5.0,vue2的项目,用的npm init webpack 项目名 命令创建的项目 

第一步:

vue cli 的安装:npm install -g @vue/cli

vue init 的安装:npm i -g @vue/cli-init

(解释一下:

vue cli 就是一个快速搭建vue项目的脚手架工具。使用vue cli可以快速搭建vue开发环境以及对应的webpack配置,生成vue项目文件夹。

 vue-cli2初始化项目即创建项目用vue init webpack 项目名;vue-cli3/4创建项目用vue create 项目名。vue-cli2启动项目用npm run dev;vue-cli3用npm run serve启动项目。

vue cli2.x,只能用于初始化vue2.x的项目;vue cli3.x到4.5x,可以用于初始化vue2.x的项目,不能用于初始化vue3.x的项目;vue cli 4.5x以上,可以用于初始化vue2.x和vue3.x的项目)

第二步:用npm init webpack 项目名 来创建项目(注意项目名中不能用大写字母)

(解释一下:

如下?依次向下是项目名称、项目描述、项目作者、构建方式(建议选择Runtime+Compiler:recommended for most users 适合大多数用户)、安装vue的路由插件(建议y)、是否使用ESLint检测你的代码、是否安装单元测试(建议N)、是否安装用户真实场景(建议N)、项目创建后是否要为你运行npm install(建议选择yes,use npm)  (不需要就直接回车,上下箭头移动))

830822c022ee4e168c79babb137b2ffb.png

1cda4f4baa6048cbb5f9e70016107f20.png

现在去浏览器输入http://localhost:8081即可看见:48f26594bd10476a9b08375f9995b7a9.png

·通过VSCode打开项目,使用npm run dev启动项目7bd6a329085641149812734228250e17.pngeaf2080fa4254015bd4eca12ee93267e.png

如上,访问成功说明脚手架已经搭建成功啦。下面我们尝试通过IP地址来访问我们的站点,我们再开一个终端去看一下我们的ip,通过ifconfig en0来查看本地ip,在vscode终端输入ipconfig可看到df162a8d69f6462f8fdce11b1ff30fbb.pngc6a3aa7774ca467ba1aec9da280fa434.png然后如上用这个ip去访问这个站点,发现是不能访问的,这是因为在config目录下面的index.js,这个配置文件当中有一个host配置,host指定了localhost,那么通过ip地址是无法访问到站点的。我们将post改为host:'0.0.0.0',四个0表示通过本地的一切ip地址都可以访问到我们这个站点5d9defd39e4e4ec89a7b1024c7b4b46d.png8e61316b023c4d6589102272eed2d4ab.png然后重启一下服务,可以看到ip地址也可以访问了e6d19d0530e042418694aaedb1711f5c.png

2.3 搭建资源服务器

现在我们再来搭建一个静态资源服务器,我们拷贝一本电子书到static静态资源文件下,然后在浏览器地址栏中加上static/电子书文件名即可下载该电子书dab9b3e0cb4b47af877f5d8de9c68f2a.pngacc26e0f2f9a47f4a8bea11190e08ca3.png

一回车即可发现该电子书已经下载完成了,说明我们的静态资源服务器就生效了,这是一个比较简易的方式,后面我们会把我们的电子书放到静态资源服务器上面,比如像nginx服务器,我们到时候会使用nginx服务器作为静态资源服务器1843c123993e46b1a3967c5c30247a71.png

2.4安装一些依赖包

接下来我们下载一些需要的依赖包,npm install node-sass sass-loader --save-dev,scss是css的一种扩展语言,这个--save-dev表示会将我们的配置文件写入到package.json当中的devDependencies当中。这里注意不同版本的node需要安装对应的sass版本,我这里node是16版本,所以node-sass是对应要下载6.0+,我安装6.0.1的,而这个版本的node-sass要对应10.2.0的版本的sass-loader。然后又遇到依赖冲突这些问题,这种版本的事情真的是好麻烦的感觉。接下来再下载阅读器引擎,npm install epubjs --save

2.5把图标集成到项目中

接下来我们将图标集成到项目当中,把icoom文件夹拷贝到项目中,然后在src目录下面有个assets,assets主要存放我们的静态资源,我们在它下面建一个叫styles的文件夹,然后把我们刚才拷贝的fonts文件夹拷贝到styles下面,把styles.css也拷贝过来(重命名为icon.css),然后就把刚才拷的icoom删除。这个icon.css就是我们图标的class,再在main.js中把icon.css引入进来,我们可以在APP.vue中加个span图标看看浏览器中有没有显示,如下图可以看到有说明图标已经集成到项目中来啦。

485b48d6d30a4c54a587f9545599847e.png

e0754c58a84f4bdeb3cdea2bc6dd6931.pngeec623fef7c1435fa81733080a7846ae.png31cba893d7e94ebb840d9fac8b133d15.png

 

这里补充一下vue项目中各个文档的作用:

main.js文件:它是 项目 的入口文件,项目中所有的页面都会加载main.js,它主要有三个作用:①实例化vue ②放置项目中经常会用到的插件和css样式,例如网络请求插件axios和vue-resource、图片懒加载插件vue-lazyload ③存储全局变量

App.vue文件:它是主组件,是页面入口文件,所有页面都是在app.vue中进行切换的,可以理解为所有路由都是app.vue的子组件。不但可以当做是网站首页,也可以写所有页面中公共需要的动画或者样式,不在上面写代码也可以

src/assets:一般用于放置src里的组件所使用的静态资源

 

2.6 viewport 配置

viewport 是依赖设置用户在手机上的可视区域

vue脚手架默认的设置的可视区域的宽度为设备宽度,缩放比例为1:1,这样会有一个问题,就是屏幕的缩放比例没有固定,操作时经常容易误触,导致屏幕放大或缩小。

通过maximum-scale和minimum-scale限定屏幕缩放比例为1:1,通过user-scalable限制用户对屏幕进行缩放,下面在代码中具体实现,第一个图是没配置前,即加上后面那些,此时再去看发现屏幕不能放大或缩小了dff9c6efb1464f7f9a3cfcb6220b0df0.pngfb0b37316c7449509e3107aeb9d36159.png2.7 rem配置

·rem是css3新增的一个相对长度单位

·rem的值相当于根元素font-size值的倍数。1rem=根元素font-size,2rem=根元素font-size*2

在什么时候设置根元素font-size?我们选择在DOM加载完毕,也就是DOMContentlOaded事件动态设置根元素font-size,html.style.fontSize=window.innerWidth / 10 + 'px'  选屏幕十分之一做默认值而不是一个固定值,这样好处是随着屏幕宽度的变化,rem对应的值也会动态变化,代码如下,可以看到font-size已经设置成功了80e3ea76540449c2b9829404eb7c7c93.png

084328b232254ce88280ebaf3999bb93.png

我们改变屏幕宽度可以看到不同屏幕宽度,字体大小不同啦25e75e816b86494fa2fbb54ed2b77436.png90a2b4aea5a34f2084dcf0d3df58301d.png

这里还有个问题就是如果屏幕宽度较大的时候,我们的字号会非常大,所以我们需要为font-size设置一个上限,比如我们定为最大50,代码如下修改11097e3d0699408698c51c62a6f7bb64.png

fd649e708d604d678221c08ca2f2e401.png

2.7 reset.scss和global.scss

接下来我们再引入这两个全局样式文件

·reset.scss的目的是为了消除不同浏览器默认样式的不一致性

·global.scss规定了整个站点的公共样式、公共方法和公共参数等

在global中我们需要实现px2rem方法,将px动态转化为rem

去访问下面这个站点,把里面那个框的样式复制,然后在src/style下新建reset.scss,然后复制到这里d34a13bca0b74e538a3cffa95f74a24a.png

48e9a3a866724dd5be257c61cd5d0cd6.png然后再在reset.scss后面对根元素以及body元素的宽高和默认字体进行一个设置,如下dd7d9f0435cd43dd8972bf61d4e347a2.png

然后我们再创建一个global.scss,这里面我们要实现把px动态转化为rem,记得到main.js中引入

7052a2289ce34e0981f8d56ea1ef0f21.png75b2c7b906404661b074335f737ff479.png

2de23f14b273473caf59c6802f962edb.png

 

小说阅读app(源码+开题) 首先,通过用户调研和数据分析,了解用户对小说阅读app的需求和使用习惯。通过深入研究用户、书籍类型、小说阅读、热度书籍、我的书架、排行榜、用户统计、书籍统计等系统功能,揭示小说阅读app在用户体验、内容推荐、数据统计等方面的优势和不足。同时,研究还能为开发者提供改进方向,推动小说阅读app在功能、性能、界面设计等方面的不断创新和提升,从而增强市场竞争力。本研究拟解决的主要问题包括:如何提升小说阅读app的用户体验、如何优化内容推荐算法以满足用户个性化需求、如何利用数据统计功能指导内容更新和运营策略等。 阅读详情

相关推荐

鸿蒙(新闻阅读类)APP开发——阅读器翻页效果实现

本文档主要面向小说应用的开发人员,指导开发者使用推荐的解决方案快速推进小说类应用的HarmonyOS适配工作。本文档立足于解决伙伴需求,提供了完整的小说类应用HarmonyOS实现方案,实现方案包括阅读器排版渲染、翻页动效实现(覆盖翻页、左右滑动翻页、上下滑动翻页)。本文档包括效果展示、场景说明、场景优化方案介绍等内容,关键能力的接入附带有详细的流程介绍和关键代码示例,力求为开发者的顺利接入提供最大程度的便捷。文字页面实现。

CTrup的博客 1221

Python小说阅读器制作教程

通过以上步骤,你已经学会了如何使用Python制作一个简易的小说阅读器。这个阅读器可以打开、读取和打印小说文件的内容。你可以根据需要添加更多功能,例如用户界面、章节管理、搜索功能、书签功能、保存阅读进度、电子书格式和分享功能。更高级的功能包括文本分析、自动摘要、个性化推荐、社交分享和互动小说等。请注意,制作一个功能完善的小说阅读器需要时间和耐心。你需要不断尝试、调试和改进你的代码,才能创建一个满意的作品。同时,学习Python编程和相关技术将有助于你更好地实现你的想法和创意。希望这个教程对你有所帮助!

这家伙很懒,什么都没有留下 1966

【鸿蒙OH实战开发】新闻阅读类 APP开发——阅读器翻页效果实现

本文档主要面向小说应用的开发人员,指导开发者使用推荐的解决方案快速推进小说类应用的HarmonyOS适配工作。本文档立足于解决伙伴需求,提供了完整的小说类应用HarmonyOS实现方案,实现方案包括阅读器排版渲染、翻页动效实现(覆盖翻页、左右滑动翻页、上下滑动翻页)。本文档包括效果展示、场景说明、场景优化方案介绍等内容,关键能力的接入附带有详细的流程介绍和关键代码示例,力求为开发者的顺利接入提供最大程度的便捷。文字页面实现。

2401_88547687的博客 937

Android Studio实现小说阅读App

点击下方图标或左右滑动来切换书架、排行榜、分类,点击右上角搜索图标进入搜索界面从书架点击某本书籍进入阅读界面在排行榜处点击左上角♂/♀图标切换男生/女生,点击某个排行榜进入排行榜界面在分类处点击上方按钮切换男生/女生,点击某个分类进入分类界面。

振华OPPO的博客世界 3万+

Vue小说阅读器(仿追书神器)

一个vue阅读器项目,目前已升级到2.0,阅读器支持横向分页并滑动翻页(没有动画,需要动画的可以自己设置,增加transitionDuration即可) 技术栈 vue全家桶+mint-ui github Fakin-Reader 部署 # install dependencies npm install # serve with ho...

weixin_33905756的博客 6189

专业EPUB阅读器开发指南:Readium-js-viewer架构解析与实战部署

Readium-js-viewer是Readium基金会开发的EPUB阅读器Web应用,提供完整的电子书阅读解决方案。这个开源项目基于HTML、CSS和JavaScript构建,支持在线云阅读和离线Chrome扩展两种部署模式,为开发者提供了强大的EPUB技术栈实现。无论您需要构建企业级电子书平台还是定制化阅读应用,Readium-js-viewer都提供了模块化架构和灵活的扩展机制。 ## 技

gitblog_00634的博客 627

【最佳实践】阅读器翻页效果实现

文字页面实现封装的文字页面子组件,父组件向子组件传递文字起点字符索引并订阅字体大小、页面背景色等属性,子组件负责小说页面的绘制。阅读器的排版渲染控制阅读器排版渲染控制支持亮度修改、字体大小修改,背景颜色修改以及翻页类型修改等。页面设置半模态属性bindSheet,onClick事件判断点击页面中部时显示半模态页面。半模态页面展示页面设置信息,用于修改阅读器的排版属性,数据与父组件之间建立双向绑定,属性修改后传给父组件,父组件再传递给阅读器页面组件,从而实现排版属性实时修改。

Alexzhang369学习总结空间 1613

Foxit福昕PDF阅读器最新版本下载安装教程(附详细图文)

本篇文章将为大家带来Foxit PDF Reader 11.2.1版本的详细下载安装教程,无论你是首次安装,还是想要更新到最新版本,都可以参考本教程。我们将一步一步引导你通过解压、安装、设置等过程,确保你能够顺利完成安装并开始使用。

Java徐师兄的博客 5699

鸿蒙开发5.0案例分析:鸿蒙(新闻阅读类)阅读器APP翻页效果实现

本文档主要面向小说应用的开发人员,指导开发者使用推荐的解决方案快速推进小说类应用的HarmonyOS适配工作。本文档立足于解决伙伴需求,提供了完整的小说类应用HarmonyOS实现方案,实现方案包括阅读器排版渲染、翻页动效实现(覆盖翻页、左右滑动翻页、上下滑动翻页)。本文档包括效果展示、场景说明、场景优化方案介绍等内容,关键能力的接入附带有详细的流程介绍和关键代码示例,力求为开发者的顺利接入提供最大程度的便捷。文字页面实现。

2501_91726121的博客 1029

52、Compact 7 RFID 阅读器与 FTDI 设备开发指南

本文详细介绍了在 Windows Compact 7 平台上开发 RFID 阅读器应用的完整流程,涵盖项目创建、界面设计、代码实现与部署调试,并深入讲解了 FTDI 设备的驱动集成与系统扩展方法。内容包括使用 VS2008 开发环境构建 RFIDReader 应用、解决部署错误、将应用集成到操作系统映像,以及通过 FTDI 芯片实现 USB 转串口功能,支持托管与本地代码访问方式。同时提供了 FTDI 驱动组件创建、流驱动开发和实际系统集成案例,帮助开发者高效完成智能嵌入式设备的开发任务。

o9p0q1的博客 43

鸿蒙5.0开发实战案例:一多开发之小说应用开发实战

本文档详细介绍了鸿蒙系统下小说阅读应用的开发方案,重点包括阅读器排版渲染实现和三种翻页动效设计。阅读器采用Canvas绘制技术,支持背景色、字号等属性实时调整,通过数据双向绑定实现参数动态修改。翻页动效涵盖覆盖翻页、左右滑动和上下滑动三种模式,采用预渲染机制和平移动画算法确保流畅体验。文档提供了完整的场景分析、技术原理说明和关键代码示例,帮助开发者快速掌握鸿蒙小说应用的核心开发技术,实现高效适配。

liudiaosi6的博客 1110

上班偷看小说阅读器

下面介绍一下这个软件,这是软件的初始形态,我们可以自由的 改变其外形、大小、颜色,除了这些外还有超多贴心的设置,使其能够更好的融入到其他软件当中,从而帮助我们光明正大偷偷摸摸的看小说而不被发现!打开软件,点击设置,在线小说,左下角书源管理,点击导入,找到准备好的书源,点击即可一键搜索全网小说!有监控的办公室都能找到机会摸鱼,那必然是看小说了。可隐藏、显示软件,可翻页,还有一键退出功能。2. 设置字体颜色、大小,段落行距,背景透明度,文字透明度。1. 程序主界面,在界面上,鼠标右键,即可打开菜单。

cvsansai的博客 1225

Rust+Tauri开发5MB轻量级Markdown阅读器实战

我用 Rust 写了个 5MB 的 Markdown 阅读器,启动只要 0.3 秒 作为一名长期与各种文档打交道的开发者,我深知一个轻量级、快速启动的 Markdown 阅读器工作效率的重要性。市面上的 Markdown 工具要么体积庞大,要么启动缓慢,要么功能冗余。经过多次技术选型和实践验证,我最终选择 Rust + Tauri 技术栈,开发了一个仅 5MB 大小、启动仅需 0.3 秒的跨平台 Markdown 阅读器。 本文将完整分享从技术选型、环境搭建到核心功能实现的全过程,包含详细的代码示例和性能

weixin_33862993的博客 367

便携式PDF阅读器:无需安装的PDF文件处理工具

htmltable {th, td {th {pre {简介:PDF阅读器是广泛使用的软件,用于打开和浏览PDF格式文档。它以跨平台兼容性和文件保真性而受到用户欢迎。绿色免安装的PDF阅读器提供用户无需安装即用的便利。该便携版可以存储在USB驱动器或其他移动存储设备上,方便携带和使用,避免系统冲突和病毒风险,并减少磁盘空间占用。尽管文章没有列出具体功能细节,但通常这类软件具备基本功能如阅读浏览、搜索导航、打印导出、批注注释、安全保护、阅读模式、页面操作和链接跳转等。

weixin_35414484的博客 721

Foxit福昕PDF阅读器11.2.1版本安装避坑指南:从下载到配置的全流程解析

本文详细解析Foxit福昕PDF阅读器11.2.1版本的安装全流程,涵盖下载源验证、系统环境检查、安装配置优化及常见问题解决方案。特别针对杀毒软件误报、语言设置错误等高频问题提供专业指导,帮助用户实现高效安装与配置,提升PDF阅读与编辑体验。

weixin_29232121的博客 357

EhViewer漫画阅读器:终极指南带你玩转Android漫画世界

EhViewer是一款专为Android设备打造的开源漫画阅读器,基于Material Design 2设计语言,为漫画爱好者提供了流畅的浏览和下载体验。这款应用不仅界面美观,还拥有强大的漫画管理功能,支持多种漫画网站的浏览,让你在手机上轻松享受高质量的漫画阅读。无论你是初次接触漫画阅读器的新手,还是希望寻找更优秀替代方案的老用户,本指南都将帮助你全面掌握EhViewer的各项功能和使用技巧,开启

gitblog_00517的博客 881
上一篇: 一、项目介绍
下一篇: 二、阅读器的开发(初始)-- 2、阅读器开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值