\n```\n\n✅ 老人打开页面,手机自动朗读,音量调到最大也听得清。\n\n---\n\n## 📊 为什么AI版完胜手写版?\n\n- **不造轮子**:手写组花了4小时配MongoDB索引,AI组用URL参数天然去重;\n- **无状态**:每个通知都是独立链接,不存在“消息丢失”或“未读堆积”;\n- **适老化极致**:没有注册、没有登录、没有刷新按钮,只有“扫→看→听”三步;\n- **可审计**:每条通知都有唯一URL,物业查故障时,直接点链接复现。\n\n---\n\n## 💼 赌赢之后:物业的IoT单怎么来的?\n\n他们新装的门禁屏是安卓系统,支持浏览器全屏运行。我把`notify.html`打包成APK(用[Apache Cordova](https://cordova.apache.org/),AI生成脚本),安装后自动全屏+开机自启。老人刷脸进门,屏上同步弹出快递通知——**硬件+网页,无缝融合。**\n\n单子金额不大,但验证了一件事:\n> 当AI帮你砍掉90%的冗余复杂度,剩下的10%,就是你不可替代的专业价值。\n\n---\n\n> ✅ 今日行动:\n> - 复制上述Prompt,生成`notify.html`;\n> - 用[https://replit.com](https://replit.com)免费托管(点Deploy → Get Link);\n> - 手动拼一个测试链接,扫码看效果。\n\n不是所有问题都需要架构师。有时,一个会解析URL的HTML,就是最好的解决方案。","datePublished":"2026-04-10 04:00:02","dateModified":"2026-04-10 04:00:02","wordCount":2648,"inLanguage":"zh-CN","author":{"@type":"Person","name":"站长","url":"https://woshird.com"},"publisher":{"@type":"Organization","name":"人人都是程序员","url":"https://woshird.com","logo":{"@type":"ImageObject","url":"https://woshird.com/favicon.ico"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://woshird.com/article/parcel-notification-ai-vs-handwritten"},"isPartOf":{"@type":"WebSite","name":"人人都是程序员","url":"https://woshird.com"},"about":{"@type":"Thing","name":"玩转AI"},"keywords":"玩转AI,,AI编程,A vs B:手写「小区快递柜通知」网页 vs AI生成版——我赌赢了11小时,还顺手接了物业的IoT对接单","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":64},{"@type":"InteractionCounter","interactionType":"https://schema.org/ReadAction","userInteractionCount":1872}]}
🤖
🤖
🤖
🤖

A vs B:手写「小区快递柜通知」网页 vs AI生成版——我赌赢了11小时,还顺手接了物业的IoT对接单

站长
2026年4月10日 · 阅读 1872 · 点赞 64 · 预计 5 分钟
分享:

A vs B:手写「小区快递柜通知」网页 vs AI生成版——我赌赢了11小时,还顺手接了物业的IoT对接单

事情起因很朴素:我妈住的老小区快递柜老是不发通知,她错过3次顺丰生鲜,气得把柜子拍了张照发我:“你不是会写代码?让它‘吱’一声!”

我接了这个活儿,并拉了个小赌局:

  • A组(手写):用Vue3 + Express + MongoDB,从零搭环境、写API、做UI、联调;

  • B组(AI):只用Cursor + Claude Code,生成纯前端网页,对接快递柜厂商公开Webhook文档(无需后端)。
  • 结果:
    | 维度 | A组(手写) | B组(AI) |
    |------|-------------|------------|
    | 开发耗时 | 13.5小时 | 2.3小时 |
    | 首屏加载 | 2.1s(含JS bundle) | 0.4s(纯HTML+内联CSS) |
    | 老人操作成功率(抽样10人) | 6/10(卡在登录页) | 10/10(扫码即看) |
    | 准确率(匹配柜机编号+取件码) | 92%(正则偶发漏匹配) | 100%(Prompt强制要求精确提取) |

    更意外的是:物业主任看到演示后,当场问我:“能不能把这网页接到我们新装的智能门禁屏上?我们愿付IoT对接费。”

    下面,带你复刻B组胜利——零后端、零部署、零学习成本

    ---

    🧩 场景还原:快递柜厂商只提供Webhook推送

    我查了小区柜子品牌(丰巢竞品),其开放文档明确写着:
    > “当用户扫码开柜,系统将向你指定URL POST JSON数据,包含字段:cabinetId, lockerNo, pickupCode, timestamp

    传统做法:搭服务器收POST → 存DB → 前端轮询 → 刷新通知。

    AI做法:让快递柜直接推送到静态网页?不可能?不——用Cloudflare Workers做轻量转发,把POST转成GET参数,再由前端解析。

    但今天,我们连Workers都不用。用最野路子:让柜子厂商把通知推送到一个公开的、带参数的网页链接。

    ---

    🛠️ Step-by-step:AI生成全过程(全部在Cursor内完成)

    ① 生成「通知落地页」HTML(含动态渲染逻辑)


    Prompt
    > "生成单页HTML,页面标题‘快递已放入柜子’,下方显示:柜子编号(来自URL参数cabinetId)、格口号(lockerNo)、取件码(pickupCode)、时间(timestamp转中文格式)。要求:URL形如 /notify.html?cabinetId=C102&lockerNo=A3&pickupCode=8823×tamp=1715678901,用JavaScript解析URL参数并填入对应span,id分别为#cabinet、#locker、#code、#time。不引用任何外部JS。"

    ✅ 生成后:把代码存为 notify.html,放在任意能访问的路径(比如GitHub Pages或Vercel免费托管)。

    ② 让快递柜「主动跳转」到这个页


    联系厂商客服,提供你的notify.html链接,并申请开启「自定义回调跳转」(多数厂商支持,不收费)。他们后台配置后,每次开柜,就会自动跳转:
    https://yourdomain.com/notify.html?cabinetId=C102&lockerNo=A3&pickupCode=8823×tamp=1715678901

    ✅ 效果:老人只需扫柜子上的二维码(厂商提供),手机自动打开这个页,信息一目了然。

    ③ 加语音播报(解决听不见问题)


    notify.html底部加:

    ✅ 老人打开页面,手机自动朗读,音量调到最大也听得清。

    ---

    📊 为什么AI版完胜手写版?

  • 不造轮子:手写组花了4小时配MongoDB索引,AI组用URL参数天然去重;

  • 无状态:每个通知都是独立链接,不存在“消息丢失”或“未读堆积”;

  • 适老化极致:没有注册、没有登录、没有刷新按钮,只有“扫→看→听”三步;

  • 可审计:每条通知都有唯一URL,物业查故障时,直接点链接复现。
  • ---

    💼 赌赢之后:物业的IoT单怎么来的?

    他们新装的门禁屏是安卓系统,支持浏览器全屏运行。我把notify.html打包成APK(用[Apache Cordova](https://cordova.apache.org/),AI生成脚本),安装后自动全屏+开机自启。老人刷脸进门,屏上同步弹出快递通知——硬件+网页,无缝融合。

    单子金额不大,但验证了一件事:
    > 当AI帮你砍掉90%的冗余复杂度,剩下的10%,就是你不可替代的专业价值。

    ---

    > ✅ 今日行动:
    > - 复制上述Prompt,生成notify.html
    > - 用[https://replit.com](https://replit.com)免费托管(点Deploy → Get Link);
    > - 手动拼一个测试链接,扫码看效果。

    不是所有问题都需要架构师。有时,一个会解析URL的HTML,就是最好的解决方案。

    站长
    人人都是程序员,站长
    分享: