案例
「智能记事搭子」案例:小程序、网页、服务号三端共用一份数据
「智能记事搭子」是我自己做的一款记事和排期工具。它有三个入口:微信小程序、网页版、微信服务号,三端共用同一份数据。在手机上记的事,回到电脑上打开网页就能接着排。
2026 年 9 月发布,之后一直在持续更新。
为什么做它
它一开始是我给自己做的。
我一个人做软件开发,手上很少只有一个项目,忙起来四五条线同时在走。任务一拆开,常常是做完这一件,就忘了另一件。
我想要一个小秘书:到了什么时间该做什么事,提醒我一下,别让我漏掉。我又觉得打字太浪费时间,所以把它做成了能直接说话输入。
就这样一边用一边改,这个小秘书慢慢变成了一款产品。
能做什么
左边是「今天」页,右边是「日历」页。截图里的任务是演示用的数据。
- 今天任务:今天要做的事,做完勾掉。
- 周排期和日历:按周、按月看安排,长按任务可以拖到另一天。
- 灵感速记:想到什么先记下来,之后再整理。
- 记账:顺手记一笔。
- 语音输入:不方便打字的时候直接说。
- 提醒:到时间通过微信提醒你。
- 倒数纪念日:重要的日子还有几天。
- 中英文切换。
我是怎么做的
三端共用一份数据
小程序、网页、服务号背后是同一个服务端和同一份数据。难点不在「能同步」,而在两台设备同时改了同一条记录时听谁的。
我的做法是把数据分成若干块,只同步改动过的那一块;两边都改了,就按规则合并,而不是简单地用后来的覆盖先前的。每次写入前先存一份快照,万一合并出了意外,可以退回去。
删掉的东西不会「自己回来」
多端同步里有个常见问题:你在手机上删了一条,过一会儿它又从另一台设备同步回来了。
解决办法是删除时不直接抹掉,而是留一个「已删除」的记号,并且规定删除优先于编辑。这样无论哪台设备后同步,这条记录都保持删除状态。
提醒要真的送到
微信里给用户发提醒有两条通道:小程序的订阅消息,和服务号的消息推送。两条通道各有各的规则,比如服务号要在用户主动发过消息之后的 48 小时内才能推送。
我把两条通道都接上,系统按当时哪条能用来选择。
用了什么技术
微信小程序;服务端用 Node.js 和 SQLite;网页版和小程序共用同一套服务端。
这个项目说明什么
如果你想做的小程序也需要网页后台、需要给用户发提醒、需要多个入口共用数据,这些我都实际做过一遍。小程序从需求到上线要经过哪些步骤,见小程序的完整开发流程。也可以看微信小程序开发,或者直接约我聊 15 分钟。