更新记录

1.0.0(2026-10-26)

  • 首发发布:小说阅读赚钱APP(读者端 uni-app x 云端一体页面模板)
  • 书城首页:轮播 Banner、编辑推荐、分类导航入口
  • 分类页:按品类检索小说
  • 书架:追更订阅、更新角标(N 章更新)、打开即标记已看(角标清零)
  • 阅读器:字体 / 主题 / 翻页模式,本地进度缓存
  • 激励视频变现:观看激励视频解锁付费章节(uni-ad 聚合,可关闭)
  • 书签:阅读器工具栏 + 目录星标快速书签
  • 书评评分:书籍详情页评分概览、书评列表、撰写 / 删除书评(评分聚合回写书籍)
  • 创作投稿与签约稿费:作者入驻、投稿、后台签约与稿费结算基础能力

平台兼容性

云端兼容性

支付宝云 腾讯云 阿里云
√ × ×

uni-app x(5.24)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - √ - - -

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


qingxia-novel-reader

「看广告免费阅读小说」用户端插件(uni-app x)· 内置 uniCloud 后端服务 本插件是云端代码唯一载体:云对象、云函数、公共模块、数据库 Schema 全部随本插件发布与部署。

插件组成

部分 内容
前端组件 components/uni-novel-reader/uni-novel-reader.uvue(easycom 阅读器组件,前端云编译加密)
客户端封装 utssdk/index.uts(novel-user-service 统一调用入口)
业务页面 pages/(书城/分类/搜索/书籍详情/阅读器/书架/个人中心,经 pages_init.json 注册)
后端服务 uniCloud/:云对象 novel-user-service、novel-admin-service;云函数 novel-ad-callback(广告解锁业务回调,验签由 uni-ad 官方 uniAdCallback 自动完成)、novel-daily-stat(定时聚合);公共模块 novel-common;全部数据库 Schema 与索引

管理端界面由另一插件 qingxia-novel-admin 提供(同服务空间调用本插件部署的云对象,本插件不包含管理端页面)。

环境要求

项 要求
HBuilderX 4.0 或更高(蒸汽模式 + 前端加密必须)
项目类型 uni-app x
云服务 uniCloud 支付宝云服务空间(与 qingxia-novel-admin 同一空间)
广告 uni-ad 激励视频广告位(自行开通)

安装与部署

  1. 从插件市场导入本插件到你的 uni-app x 项目;
  2. 右键 uni_modules/qingxia-novel-reader/uniCloud/database → 上传所有 DB Schema 及索引;
  3. 右键 uni_modules/qingxia-novel-reader/uniCloud/cloudfunctions/novel-ad-callback → 上传部署(勾选加密);
  4. 依次上传部署 novel-daily-stat、novel-user-service、novel-admin-service、公共模块 novel-common;
  5. uni-ad 控制台开启激励视频「服务器回调」,回调云函数选择 novel-ad-callback(uni-ad 会自动部署官方 uniAdCallback 转发;若服务空间已存在同名旧云函数需先删除);
  6. 在页面使用 <uni-novel-reader>(Props/Events 见下)。

组件 API

Props

属性 类型 必填 默认值 说明
bookId string ✅ — 书籍 ID
chapterId string ✅ — 初始章节 ID(组件内部只取一次,后续跳章用 ref 的 goToChapter)
adpid string ✅ — 激励视频广告位 ID(未开通广告时可传空串,付费章节按试读处理)
adapter object ❌ 同空间云对象 自定义数据源(不依赖本插件后端时传入,需实现 getChapterContent/adUnlockReady/verifyUnlock/saveProgress)
theme object ❌ 内置主题 自定义主题 { background, textColor, fontFamily };不传则用内置主题(羊皮纸/护眼绿/夜间,阅读器内可切换并本地持久化)
fontSize number ❌ 0(不接管) 初始字号(px),仅 14~26 区间内的值会被采纳
pageMode string ❌ ''(不接管) 初始模式:'scroll' 滚动 / 'pager' 翻页,其它值视为未传

偏好优先级:宿主传入的 fontSize/pageMode > 本地存储(nr_fontSize、nr_pageMode、nr_theme、nr_lineHeight)> 组件默认。宿主不传这两项时,读者自己在阅读器底部栏记住的偏好照常生效。

theme 内置默认:{ background: '#F5F1E8', textColor: '#3a3a3a', borderColor: '#d8ccb4' }(羊皮纸);fontFamily: 'night' 时按夜间主题渲染。

Events

事件 参数 触发时机
unlock-success { chapterId } 服务器回调确认解锁成功后
unlock-failed { chapterId, reason } 广告未看完 / 回调失败
chapter-change { chapterId } 用户切换章节
ad-error { code, message } 广告加载失败(-1004 无填充属正常)

方法(ref 调用)

goToChapter(chapterId)、onPrev()、onNext()、saveProgressNow()、currentChapterId

后端服务说明

名称 类型 职责
novel-ad-callback 云函数 广告解锁业务回调:trans_id 去重 → 写 novel-unlock-records → 返回 {isValid:true}(验签由 uni-ad 官方 uniAdCallback 完成)
novel-daily-stat 云函数 每日 01:00 聚合解锁数据到 novel-stat-daily(看板数据源)
novel-user-service 云对象 书城/目录/正文/解锁校验/书架/进度
novel-admin-service 云对象 内容 CRUD/批量导入/用户/广告配置/统计(admin 角色)
novel-common 公共模块 统一响应、错误码、参数校验、redis 计数、章节冗余维护

安全铁律:客户端 isEnded 仅作 UI 反馈,奖励发放完全由服务器回调驱动(uni-ad 官方 uniAdCallback 验签 → novel-ad-callback 写库);novel-unlock-records.ad_trans_id 与 user_id+chapter_id 建唯一索引防刷。

数据库集合:novel-books、novel-chapters、novel-unlock-records、novel-shelf、novel-reading-progress、novel-ad-config、novel-stat-daily(详见插件内 uniCloud/database/)。

广告解锁流程

用户点击"看视频免费解锁"
  → adUnlockReady(付费/次数前置校验)
  → 播放激励视频(uni-ad)
  → onClose(isEnded) ← 仅 UI 反馈,不发放奖励
  → uni-ad 服务器回调:官方 uniAdCallback 验签 → novel-ad-callback ← 真正的发放触发点
  → trans_id 去重 + 写 unlock_records
  → 客户端轮询 verifyUnlock → 解锁成功,加载章节

常见问题

  • 激励视频无回调:检查 uni-ad 后台是否开启服务器回调、回调云函数是否选对本空间与 novel-ad-callback、云函数日志;若空间存在同名旧 uniAdCallback 需先删除再让官方自动部署。快手广告有反作弊调整,被风控用户可能不回调,换设备/网络测试。
  • -1004:无广告填充,正常情况,做降级提示;-5002:adpid 与基座不匹配,测试位与正式位勿混用。
  • 客户端 isEnded 为 true 但没解锁:设计如此,奖励由服务器回调驱动。
  • 管理端页面在哪:需同时购买安装 qingxia-novel-admin 插件。

授权与定价

类型 价格 说明
普通授权 ¥399 加密分发,禁止反编译与二次分发(对齐《普通授权协议》)
源码授权 ¥2499 完整源码交付,可二次开发,禁止转售与竞争产品(对齐《源码授权协议》)
  • 与 qingxia-novel-admin 组合购买:普通 ¥499 / 源码 ¥2999;
  • 7 天全功能试用,试用结束加密云函数自动失效;
  • 本插件不含小说内容源,版权合规由购买方负责。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

需网络权限与云端数据库读写;涉及存储权限时仅用于本地缓存阅读进度。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用 uniCloud 云端数据库(支付宝云)存储用户、书籍、章节、进度、书架、签约、稿费等业务数据;需宿主配置 uni-id 登录体系。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

本插件不直接投放广告;广告位由宿主 App 配置 uni-ad 聚合平台后启用,观看激励视频解锁付费章节为可关闭能力。

暂无用户评论。