基于 Cloudflare Workers 的智能挪车通知系统,扫码即可通知车主,保护双方隐私。
| 请求者页面 | 车主页面 |
|---|---|
| 🔗 在线预览 | 🔗 在线预览 |
- 🚗 被堵车却找不到车主 - 干着急没办法
- 📱 传统挪车码暴露电话 - 隐私泄露、骚扰电话不断
- 😈 恶意扫码骚扰 - 有人故意反复扫码打扰
- 🤔 路人好奇扫码 - 并不需要挪车却触发通知
- ✅ 不暴露电话号码 - 通过推送通知联系,保护隐私
- ✅ 双向位置共享 - 车主可确认请求者确实在车旁
- ✅ 无位置延迟 30 秒 - 降低恶意骚扰的动力
- ✅ 免费部署 - Cloudflare Workers 免费额度完全够用
- ✅ 无需服务器 - Serverless 架构,零运维成本
- 🔔 支持「紧急 / 重要 / 警告」通知级别
- 🎵 可自定义通知音效
- 🌙 即使开启勿扰模式也能收到提醒
- 📱 安卓用户:原理相通,将 Bark 替换为安卓推送服务即可(如 Pushplus、Server酱)
- 扫描车上的二维码,进入通知页面
- 填写留言(可选),如「挡住出口了」
- 允许获取位置(不允许则延迟 30 秒发送)
- 点击「通知车主」
- 等待车主确认,可查看车主位置
- 收到 Bark 推送通知
- 点击通知进入确认页面
- 查看请求者位置(判断是否真的在车旁)
- 点击确认,分享自己位置给对方
请求者 车主
│ │
├─ 扫码进入页面 │
├─ 填写留言、获取位置 │
├─ 点击发送 │
│ ├─ 有位置 → 立即推送 ──────────→ 收到通知
│ └─ 无位置 → 30秒后推送 ────────→ 收到通知
│ │
├─ 等待中... ├─ 查看请求者位置
│ ├─ 点击确认,分享位置
│ │
├─ 收到确认,查看车主位置 ←──────────┤
│ │
▼ ▼
- 打开 https://dash.cloudflare.com/sign-up
- 输入邮箱和密码,完成注册
- 登录后点击左侧菜单「Workers & Pages」
- 点击「Create」→「Create Worker」
- 名称填
movecar(或你喜欢的名字) - 点击「Deploy」
- 点击「Edit code」,删除默认代码
- 复制
movecar.js全部内容粘贴进去 - 点击右上角「Deploy」保存
- 左侧菜单点击「KV」
- 点击「Create a namespace」
- 名称填
MOVE_CAR_STATUS,点击「Add」 - 回到你的 Worker →「Settings」→「Bindings」
- 点击「Add」→「KV Namespace」
- Variable name 填
MOVE_CAR_STATUS - 选择刚创建的 namespace,点击「Deploy」
- Worker →「Settings」→「Variables and Secrets」
- 添加以下变量:
BARK_URL:你的 Bark 推送地址(如https://api.day.app/xxxxx)PHONE_NUMBER:备用联系电话(可选)
- Worker →「Settings」→「Domains & Routes」
- 点击「Add」→「Custom Domain」
- 输入你的域名,按提示完成 DNS 配置
- 复制你的 Worker 地址(如
https://movecar.你的账号.workers.dev) - 使用任意二维码生成工具(如 草料二维码、QR Code Generator)
- 将链接转换为二维码并下载
使用 AI 工具生成精美的装饰设计:
- Nanobanana Pro - 生成装饰图案和背景
- ChatGPT - 生成创意设计图
制作步骤:
- 用 AI 工具生成你喜欢的装饰图案
- 将二维码与生成的图案组合排版
- 添加「扫码通知车主」提示文字
- 打印、过塑,贴在车上
💡 用 AI 生成独一无二的挪车牌,让你的爱车更有个性!
为防止境外恶意攻击,建议只允许中国地区访问:
- 进入 Cloudflare Dashboard → 你的域名
- 左侧菜单点击「Security」→「WAF」
- 点击「Create rule」
- 规则设置:
- Rule name:
Block non-CN traffic - If incoming requests match:
Country does not equal China - Then:
Block
- Rule name:
- 点击「Deploy」
在 movecar.js 开头添加:
// 只允许中国地区访问
const country = request.cf?.country;
if (country && country !== 'CN') {
return new Response('Access Denied', { status: 403 });
}
⚠️ 曾经被境外流量攻击过,强烈建议开启地区限制!
MIT
