网盘二维码内容管理
文章页网盘分享链接扫码插件:自动识别正文中的各大网盘链接,用户点击时拦截跳转,在弹窗内生成二维码,并按网盘类型提示使用对应的 APP 扫码打开。
¥4.00抵扣
一次购买,永久使用
详情介绍
网盘二维码(NetworkQRcode)
文章页网盘分享链接扫码插件:自动识别正文中的各大网盘链接,用户点击时拦截跳转,在弹窗内生成二维码,并按网盘类型提示使用对应的 APP 扫码打开。
功能特性
- 仅作用于文章正文容器内的网盘链接,站内导航、按钮等普通链接不受影响。
- 点击网盘链接不直接跳转,改为弹出二维码弹窗。
- 生成二维码前先在服务端检测分享链接状态,资源已失效时不生成二维码,弹窗内直接提示「资源已失效」。
- 检测结果按链接缓存,避免重复请求第三方站点;检测超时或被目标站点拦截时默认放行,避免误判。
- 二维码使用本地
qrcode库生成 SVG,不请求任何第三方二维码接口,无隐私与稳定性风险。 - 二维码库在用户首次点击网盘链接时才按需加载,不增加普通页面首屏负担。
- 弹窗内根据命中的网盘规则,提示「请使用「XX APP」扫描上方二维码」。
- 内置百度网盘、阿里云盘、夸克网盘、迅雷云盘、天翼云盘、中国移动云盘、123 云盘、115 网盘、蓝奏云、城通网盘、光鸭云盘、坚果云、腾讯微云、联通云盘等识别规则。
- 支持后台自定义网盘名称、扫码 APP 名称、匹配正则与标记颜色。
- 兼容桌面端与移动端,支持
Esc、遮罩点击、关闭按钮关闭弹窗。 - 与下载权限、网盘资源等插件互不干扰:已由权限/下载逻辑接管的链接(
data-dg-open、.js-netdisk-download、.js-netdisk-qr)不会被拦截。
安装
- 将
NetworkQRcode目录放入站点plugins/目录。 - 进入后台「应用中心 → 插件」,找到「网盘二维码」并安装。
- 安装后插件会把
static/资源同步到public/static/NetworkQRcode/。 - 在插件配置中确认「启用网盘二维码」为开启状态。
前台主题布局需要输出 {:plugin_assets()}(本项目内置主题均已输出),插件资源才会注入页面。
使用方式
文章正文中出现网盘分享链接时,前台用户点击该链接:
- 浏览器不跳转原链接;
- 弹窗先显示「正在检测资源状态…」,服务端探测分享页;
- 资源有效时生成二维码,用户使用对应网盘 APP 扫描即可在手机上打开分享页;
- 资源已失效时不生成二维码,弹窗提示「资源已失效」,并说明该分享可能已被取消、删除或过期。
示例:
<p>资源下载:<a href="https://pan.quark.cn/s/xxxxxxxx">夸克网盘</a></p>
<p>备用地址:<a href="https://pan.baidu.com/s/xxxxxxxx">百度网盘</a></p>点击「夸克网盘」链接时,弹窗提示使用「夸克APP」扫描。
配置说明
| 配置项 | 说明 |
|---|---|
| 启用网盘二维码 | 关闭后文章内网盘链接恢复为普通跳转 |
| 生成前检测链接有效性 | 开启后点击网盘链接会先在服务端探测分享状态,失效则不生成二维码 |
| 检测超时(秒) | 单次链接探测的最长等待时间,默认 5,允许 2~15 |
| 检测结果缓存(秒) | 同一链接检测结果缓存时长,默认 600,设为 0 关闭缓存 |
| 检测失败时仍显示二维码 | 探测超时、被拦截等无法确定状态时默认放行,避免误判 |
| 失效提示文案 | 检测到资源失效时弹窗内的主要提示,默认「资源已失效」 |
| 二维码尺寸(px) | 弹窗内二维码显示边长,默认 220,允许 120~360 |
| 二维码容错级别 | L / M / Q / H,默认 M |
| 二维码留白(模块) | 二维码四周留白,默认 2,允许 0~8 |
| 扫码提示文案 | 显示在二维码下方,{app} 会替换为命中的扫码 APP 名称 |
| 生效内容选择器 | 仅拦截这些 CSS 容器内的链接,多个选择器用英文逗号分隔 |
| 网盘识别规则 | JSON 数组,按顺序匹配,首个命中生效 |
网盘识别规则格式
[
{
"name": "夸克网盘",
"app": "夸克APP",
"pattern": "pan\\.quark\\.cn",
"color": "#2f6bff"
},
{
"name": "百度网盘",
"app": "百度网盘APP",
"pattern": "(?:pan|yun)\\.baidu\\.com",
"color": "#2932e1"
}
]字段说明:
name:弹窗标题中显示的网盘名称。app:提示文案中显示的扫码 APP 名称,对应{app}占位符。pattern:匹配链接 URL 的 JavaScript 正则字符串(不区分大小写),注意 JSON 中反斜杠需要写成\\。color:可选,网盘标记图标的主色,支持#RGB/#RRGGBB/#RRGGBBAA。
生效内容选择器
默认值:
.detail-body,.ps-detail-body,.topic-content,.topic-detail,.article-content内置主题对应关系:
kuakebacn、duanju、社区默认主题:.detail-bodypansou:.ps-detail-body
如使用自定义主题,请把正文容器的类名补充到该配置中。
失效检测机制
点击链接后,前端向 POST /network-qrcode/check 发起检测,服务端以普通浏览器身份请求网盘分享页(不跟随站外跳转,最多 3 次同域重定向),判定规则:
- HTTP 404 / 410 / 451:判定资源已失效;
- 页面包含「分享已被取消」「分享已被删除」「文件已删除」「你来晚了」「分享不存在」「分享已过期」等失效特征:判定资源已失效;
- 被重定向到分享错误页:判定资源已失效;
- 403、429、5xx、请求超时、空响应等无法确定状态的情况:按「检测失败时仍显示二维码」配置处理,默认放行。
检测接口只接受「网盘识别规则」中已配置的域名,不能作为通用网址代理使用。检测结果写入 runtime/network_qrcode/ 缓存,缓存时长由后台配置决定。
部分网盘分享页为前端渲染(SPA),服务端无法从 HTML 中读取到失效信息,此时会按「无法确定」处理;如需严格拦截,可关闭「检测失败时仍显示二维码」。
兼容性
- 采用事件委托监听文档点击,兼容 PJAX 局部换页后新插入的正文内容。
- 已排除
Ctrl/Shift/Alt/ 中键点击,保留用户在新标签页打开的习惯。 - 非
http/https链接(如javascript:、#)不会被识别。 - 静态资源版本号在插件文件中维护,升级后请同步修改
network-qrcode.css/js的?v=参数以刷新缓存。
卸载
在后台插件列表点击卸载,插件会清理 public/static/NetworkQRcode/ 静态资源。插件无独立数据表,卸载不会影响文章内容。
更新记录
- 1.0.1:新增生成前资源失效检测,失效资源不再生成二维码;新增检测超时、结果缓存、失败放行与失效提示文案配置。
- 1.0.0:首个版本,支持正文网盘链接识别、本地二维码生成、按网盘类型提示扫码 APP、后台自定义识别规则。
更新记录 (1)
-
v1.0.01
2026-10-21
更新记录 •1.0.1:新增生成前资源失效检测,失效资源不再生成二维码;新增检测超时、结果缓存、失败放行与失效提示文案配置。 •1.0.0:首个版本,支持正文网盘链接识别、本地二维码生成、按网盘类型提示扫码 APP、后台自定义识别规则。
QQ官方交流群