声明:由 lza6 开源倾力打造。这不仅是一个工��,更是一种打破环境壁垒、追求技术自由的工程实践。
在万物互联的今天,我们常被“仅限手机打开”、“请在微信内查看”等环境壁垒所困扰。qcode-to-url 的诞生,就是为了赋予开发者和普通用户一种**“降维打击”**的能力:
- 技术平等:让 PC 端也能完美访问移动端私有协议内容。
- 开源精神:通过代码的透明性,鼓励每一个人去探索底层逻辑。
- 道德与自由:在遵循技术规范的前提下,探索更高效的数据连接方式。
如果你不想配置复杂的开发环境,只需 3 步即可拥有自己的扫描站:
- 注册/登录 Cloudflare。
- 创建 Worker:在 Workers & Pages 菜单中点击 "Create application" -> "Create Worker"。
- 粘贴代码:删除默认代码,将本仓库的 worker.js 内容全部粘贴进去,点击 "Save and deploy"。
🎉 搞定!你现在可以访问你的专属扫描站了。
graph TD
A[用户输入: 摄像头/图片/粘贴] --> B{识别引擎: html5-qrcode}
B -->|解析成功| C[结果呈现]
C --> D[动作选择: 复制/访问/新标签]
D -->|开启伪装模式| E[动态注入脚本]
E --> F[重写 User-Agent]
F --> G[突破微信限制访问]
项目最核心的“黑科技”在于 injectWechatBypass 方法。它通过 Object.defineProperty 重新定义 navigator.userAgent,令目标页面确信当前处于 微信 8.0.47 的真实环境中。
- 变量名解析:
isWechatMode: 布尔控制开关,决定是否启用模拟。getWechatUserAgent(): 返回精挑细选的、具有高权重的微信真实 UA 字符串。
- 沙箱隔���:使用
iframe的sandbox属性,确保在预览第三方站点时,主站的安全指纹不会被泄露。
- 玻璃拟态 (Glassmorphism):使用
backdrop-filter: blur(10px),营造出穿透层级的高级视觉感。 - 动态微动:按钮的
translateY(-2px)和阴影变化,给予用户极佳的操作反馈。 - 人性化交互:支持 Ctrl+V 直接识别,解决了“先截图、再保存、再上传”的繁琐路径。
| 技术点 | 描述 | 实现评级 | 操作难度 |
|---|---|---|---|
| 二维码识别 | 基于 html5-qrcode,支持多格式 | ⭐⭐⭐⭐⭐ | 🟢 易 |
| 环境伪装 | 动态 UA 注入与脚本改写 | ⭐⭐⭐⭐ | 🟡 中 |
| 反探测能力 | 混淆沙箱 + 指纹隐藏 | ⭐⭐⭐ | 🔴 难 |
| 响应式设计 | 适配手机、PC、平板 | ⭐⭐⭐⭐⭐ | 🟢 易 |
这个项目目前已完成 1.0 基础版,但星辰大海还在后面:
- AI 智能语义分析 🤖:通过集成 DeepSeek,自动识别扫描出的链接是否安全、自动归纳网页内容。
- 指纹深度仿真 🧬:除了 UA,进一步模拟电池电量、地理位置、屏幕压力感应等微信特有 API。
- 多线程批量扫描 ⚡:支持一次性拖入 100 张二维码图片,秒出结果报告。
- 去中心化存储 ⛓️:与 IPFS 结合,让扫描历史永久、加密地保存在区块链上。
/
├── worker.js # 核心逻辑文件(包含了 HTML, CSS, JavaScript)
├── LICENSE # Apache 2.0 开源协议
└── README.md # 本 README 文档
提示:目前项目采用“单文件架构”,极大地方便了 Cloudflare Workers 的一键手���部署。
- 脚本注入时机:目前的注入依赖
iframe.load,对于复杂的单页面应用 (SPA) 可能会有延迟感。 - HTTPS 强依赖:由于浏览器安全政策,摄像头扫码功能必须在 HTTPS 下运行。
- 跨域限制:部分严格配置了
X-Frame-Options的网站无法在预览框中打开。
改进方向建议:后续开发者可以考虑引入 Cloudflare 的 HTMLRewriter API,在服务端直接改写第三方页面的响应头,彻底破除跨域限制。
我们相信:代码是表达自由的一种语言。 阅读完这份文档,你会发现:“哦,原来我也行!” 这种感觉是对开源精神最好的褒奖。请在使用本项目的过程中,保持对他人的尊重,仅用于学习、测试与效率办公。
动手吧,开发者!你离掌控环境只差一个 deploy! 🚀
Copyright © 2026 lza6. Licensed under Apache License 2.0.